《深入理解AI Agent:设计原理与工程实践》是华为天才少年李博杰的开源之作,GitHub 33K star,Apache 2.0 协议。
它不是一本"跑通Demo"的教程,而是把AI Agent的设计从"感觉驱动"变成"原则驱动"的工程圣经——深入理解Agent为什么要这样设计,每一个架构决策背后的取舍是什么。
全书的核心是一个简洁而深刻的公式:Agent = LLM(大脑)+ 上下文(眼睛)+ 工具(手脚)。
围绕这个公式,作者用十章展开:构建(上下文工程/记忆知识库/工具/代码生成)、评估与进化(评估/后训练/持续进化)、交互与协作(多模态/多Agent)。
这本书的特殊之处在于"实践在前,命名在后":早在Anthropic提出Skill、harness、loop engineering等概念之前,作者所在的Pine团队就已经在实践中趟过了这些路。
Pine是第一个能自主与真人交互、可靠独立处理涉及金钱的长程任务的通用Agent——正是这种对可靠性近乎苛刻的要求,把书中反复强调的架构原则一条条倒逼了出来。
对团队而言,这本书的价值是双重的:既是我们理解自身(五个Agent角色协作)的理论武装,也是构建更强大Agent系统的工程手册。
它告诉我们:决定Agent价值的往往不是模型参数量,而是上下文质量与工程细节。
引言交代了本书的来历(图灵AI Agent实战营讲座整理、whisper coding协作完成)与核心方法论:评估机制是Agent迭代的地基。
第1章 Agent基础知识建立"Agent = LLM + 上下文 + 工具"的核心公式,展开观察空间与动作空间、ReAct循环、Harness工程与Loop工程、护栏与安全。
第2章 上下文工程(最关键)讲透上下文决定Agent能力上限、API上下文结构、KV Cache友好设计、提示工程、Agent Skills、上下文压缩。
第3章 用户记忆和知识库建立记忆三层次框架,展开RAG管道(分块/嵌入/检索/生成)与知识图谱。
第4章 工具分类五类工具(感知/执行/协作/事件触发/用户沟通),讲透MCP协议与工具选择挑战。
第5章 Coding Agent论证代码生成是通用Agent的元能力,给出七核心工具与生产级全景。
第6章 Agent的评估系统讲解评估环境、数据集设计、指标、自动化评估、统计显著性、评估驱动选型。
第7章 模型后训练讲透预训练/SFT/RL三阶段,工具调用内化与样本效率。
第8章 持续进化从运行轨迹获得学习信号,展开知识/指令/程序/参数四种更新方法。
第9章 多模态与实时交互讲透语音三范式(级联/Omni/全双工)、Computer Use、机器人。
第10章 多Agent协作建立上下文共享/隔离的分类框架,展开协作拓扑、Agent社会与A2A协议。
后记提出"两朵乌云"(实时交互、持续学习)与Harness飞轮——模型与Agent共同演进。
本书源自2025年8月至10月图灵《AI Agent实战营》系列讲座。
作者李博杰的初衷:把AI Agent的设计从"感觉驱动"变成"原则驱动"——不只是教大家跑通Demo,而是深入理解Agent为什么要这样设计,每个架构决策背后的取舍。
值得一提的是,这本书本身就是用whisper coding(口述式协作)做出来的:作者向Pine自己的语音Agent口述提纲,让它调研、整理初稿,再结合学员反馈反复打磨——语音带宽约为打字四倍,"口述—调研—讨论—修改"循环因此转得很快。
书中提出两条核心方法论:第一,拥有一个对Agent能力上限有极高要求的真实业务(Pine处理几十轮交涉、涉及真金白银的任务,任何一步出错都有真实损失);第二,必须建立评估机制——"没有评估,就没有进步。
评估让你能分辨一次改动究竟是真的变好了,还是只是运气。
"
作者还强调"实践在前,命名在后":如果每次都要等到业界流行某个名词才去实践,就已经慢了一步。
头部公司往往早已把对应问题趟过一遍。
因此,本书不是概念解释,而是工程经验的系统化。
现代Agent系统的本质可以用一个简洁的公式表达:Agent = LLM + 上下文 + 工具。
每个词都需要广义理解:
LLM是Agent的大脑——不仅是模型参数,而是整个决策内核(理解意图、思考规划、做出判断)。
能力来自预训练(世界知识与语言能力)与后训练(决策策略)。
上下文是Agent的眼睛——每个决策点能看到的全部信息(环境信息、用户记忆、领域知识、自身状态)。
工具是Agent的手脚——能做的所有事情的集合(API、Skills、动态生成代码、委托子Agent)。
三个组件对应强化学习的三个核心概念:大脑=策略(Policy,决定下一步做什么)、眼睛=观察空间(Observation Space,能看到什么)、手脚=动作空间(Action Space,能做什么)。
观察空间与动作空间共同构成LLM与外部环境之间的接口。
没有进入观察空间的信息,对模型来说就像不存在;没有进入动作空间的操作,模型只能停留在文字建议上。
在底层模型固定时,提升Agent任务表现最主要的系统工程手段,往往就是重新定义或扩展这两个空间。
作者用两个产品案例说明:Manus的突破在于把Deep Research、Coding、Computer Use三条路线的观察/动作空间取并集——虚拟浏览器扩大观察空间,文件系统、代码执行、命令行扩大动作空间;OpenClaw把接口延伸到用户数字生活——通过WhatsApp/Telegram/Slack等消息渠道触达,本地Gateway连接Google Drive/Notion,跨越更大的数据边界。
工具是Agent改变世界的唯一方式。
作者将工具分为五类(第四章详述):感知工具(获取信息:搜索/读文件/查知识库)、执行工具(改变世界:命令行/写文件/发邮件)、协作工具(驱动其他Agent或人类:spawn_subagent)、事件触发工具(外部事件唤醒Agent:定时器/监控)、用户沟通工具(主动向用户传递信息:reply_to_user)。
工具设计的核心矛盾是"无限的工具列表 vs 有限的上下文窗口"——这引出工具发现的挑战:当工具规模成百上千时,如何让Agent找到正确的工具?
第四章给出分层组织、动态发现与Skills的方案。
LLM作为Agent的决策内核,其能力由两部分构成:预训练积累的世界知识与语言能力("博学"),后训练固化的决策策略("好用")。
预训练让模型博学却不好用——问它问题它可能续写出更多问题;SFT教会它"被提问时应该回答";RL让它在环境中学会决策与工具调用。
模型选择是工程决策:需要考虑任务类型(文本/代码/多模态)、延迟要求(实时交互vs深度思考)、成本约束(token价格)、上下文窗口(长文档处理)。
第七章会展开后训练的技术细节。
上下文是Agent在每个决策点能看到的全部信息。
作者将上下文分为五个组成部分:系统提示词(定义身份/规则/约束)、用户消息(终端用户输入)、模型回复(assistant消息)、工具执行结果(tool消息)、工具定义(tools字段)。
上下文质量决定Agent能力的上限:一个中等能力的模型配上精心组织的上下文,往往能胜过一个顶级模型在信息匮乏下的盲目摸索。
上下文工程不仅是技术问题,更是组织问题——团队关键知识的隐性化(架构决策只有老员工记得、业务规则口口相传)是Agent发挥价值的最大障碍。
ReAct(Reasoning + Acting)是现代Agent的核心循环:模型交替进行推理(思考下一步做什么)与行动(调用工具),观察工具结果后继续推理,如此循环直到任务完成。
ReAct循环是Agent"自主性"的最小实现。
它的变体包括:Plan-and-Execute(先规划再执行)、Tree-of-Thoughts(树状推理)、Reflexion(反思再试)。
生产级Agent需要max_iterations上限,防止模型陷入"重复调用同一个工具"的死循环。
工程范式的演进:提示工程(Prompt Engineering)优化单次输入输出;Loop工程(Loop Engineering)优化整个Agent循环——不只是"说什么",而是"如何思考、何时行动、怎样纠错"。
作者指出,loop engineering的核心是设计Agent的决策循环:何时调用工具、何时询问用户、何时宣布完成、遇到错误如何处理。
Pine团队早在loop engineering概念流行前,就在使用"提议者-审核者(proposer-reviewer)"方法解决模型过早认为任务完成的问题——这正是我们团队"魔形女写→北极星审"模式的同构。
Harness(安全带/框架)是Agent系统中"模型之外"的全部工程——上下文组装、工具封装、循环控制、安全护栏、状态管理。
作者提出Harness五个功能的核心原则:
① 可靠性:处理模型的不稳定、幻觉、危险操作;② 可观察性:Agent轨迹可追踪、可审计;③ 安全性:权限最小化、操作可回滚;④ 可控性:用户可以干预、停止、调整;⑤ 扩展性:新工具/新技能可插拔。
作者的核心洞见:模型会一层层吃掉Harness——当下一代模型内化了某层Harness的兜底逻辑,对应的代码就可以删掉。
但与此同时,Harness也是模型能力进化的"信号源":Agent在真实业务中趟过的坑,会成为下一轮训练的数据。
作者总结了构建有效Agent的核心原则:上下文为王(给足背景信息)、工具要精准(可发现、可理解、安全)、循环要有界(max_iterations、超时)、错误要可恢复(重试、回退、用户介入)、状态要可追踪(轨迹完整记录)。
这些原则的共同指向:Agent不是"黑盒魔法",而是可预测、可控制、可审计的工程系统。
模型选择需要多维权衡:任务类型(文本生成/代码/多模态)、能力需求(推理深度)、延迟要求(实时交互vs批处理)、成本(token价格)、上下文长度(长文档/多轮对话)、安全合规(数据不出域)。
作者的实用建议:不要追求"最强模型",而要匹配"任务需求"——简单任务用快模型降低成本,复杂任务用强模型保证质量。
评估(第六章)是模型选型的科学依据:在代表性任务集上实测,而不是看Benchmark榜单。
Agent的编排模式是一个光谱:从工作流(workflow,预设步骤、确定性执行)到自主Agent(autonomous agent,模型自主决策、动态规划)。
两者没有绝对优劣——任务可预测时用工作流(可靠、可控),任务开放时用自主Agent(灵活、强大)。
生产系统常采用"混合编排":把可预测的步骤固化为工作流,把开放的决策交给模型。
比如客服Agent:身份验证走工作流,退款策略判断走模型。
Agent的安全护栏是生产级系统的生命线:权限最小化(Agent只拥有完成任务所需的最小权限)、操作可回滚(危险操作前备份)、人类介入点(关键操作需审批)、内容过滤(防止生成有害内容)、成本控制(token预算上限)。
作者特别强调"悲观地默认不安全"的权限判断哲学:Agent框架默认拒绝高风险操作,除非显式授权。
这比"乐观地默认安全"安全得多——尤其当Agent涉及金钱、隐私、系统变更时。
大语言模型在标准测试中成绩亮眼,到实际业务却常让人失望——因为模型执行具体任务需要通用模型根本不知道的背景信息(产品架构、业务规则、内部约定)。
作者用"天才工程师加入团队"的比喻说明:模型像一位天才,但对你们的产品架构、业务逻辑、技术债务一无所知,即便智力超群也难以发挥价值。
以Coding Agent为例,三类信息构成有效工作的最低需求:实时代码上下文(目录结构、模块职责、代码规范)、流程规范(Git策略、提交规范、CI/CD)、环境信息(开发配置、测试数据库、API密钥)。
核心结论:上下文的质量才是Agent能力的真正关键。
中等模型+精心组织的上下文,往往胜过顶级模型+信息匮乏。
上下文工程不仅是技术问题,更是组织问题——大多数团队的关键知识都是隐性的。
以OpenAI Chat Completions API为例,Agent每次调用大模型的请求核心是一个消息列表(messages),每条消息有角色标识:
system(系统提示词):定义Agent身份、行为规则、约束条件,最高优先级指令;user(用户消息):终端用户输入;assistant(助手消息):模型之前的回复(含工具调用请求);tool(工具结果):Agent框架执行工具后送回的结果,通过tool_call_id与调用请求关联。
此外,工具定义(tools)作为请求的独立字段传入。
"四种消息角色 + tools字段"恰好覆盖第一章所说的上下文五个组成部分。
理解这个API结构,是掌握所有上下文工程技术的基础。
KV Cache是理解上下文设计成本的核心概念。
模型每生成一个token,都要回头看前文所有token的中间计算结果;KV Cache把前文结果缓存下来,下一轮只需计算新增部分。
前提是要复用的上下文token前缀保持不变——若token序列从某位置开始不同,该位置及其后的KV状态需要重新计算。
作者讲了一个经典事故:某客服Agent每天处理10万次对话,工程师在系统提示词加了`Current time: {{now}}`实时时间戳,第二天首token延迟从0.5秒涨到3-5秒、推理账单翻倍——因为时间戳使每次请求的token序列不同,缓存全部失效。
提示工程的核心对象是系统提示词——Agent的"员工手册"。
检验标准:一个聪明的新员工读完系统提示词还不知道该怎么做,Agent也一样不知道。
优化维度包括:
语气与风格:如"简洁回答不超过4行"、"无法完成时保持1-2句话"——避免Agent冗长自我辩护。
大写字母(NEVER do X)比Please avoid更能引起模型注意,但应保留给关键约束。
结构化提示:XML标签携带语义信息(`
流程驱动 vs 规则堆砌:上百条零散规则会让模型困惑(多条规则同时适用时如何选择?
);流程驱动的SOP(标准操作流程)让模型任何时刻都知道自己处于哪个阶段、下一步做什么。
业务规则细化:生产级Agent最容易忽视却最关键的是把隐性的业务规则显式化、可执行化。
系统提示词会随时间无限膨胀——每加一个功能就加一段规则,最终提示词又长又乱、token成本暴涨、模型注意力被稀释。
解决方案:动态加载提示词——把提示词拆成模块,按需注入。
Agent Skills(技能)是这一思想的系统化:把特定任务的完整指令(提示词+示例+工具约定)打包成可独立加载的"技能模块",Agent按需调用。
Skill概念流行之前,Pine团队已用动态加载提示词解决提示词膨胀问题,用命令行执行工具解决工具列表膨胀问题。
Skills与工具的区别:工具是"动作",Skill是"能力包"(含如何做、何时用、示例)。
Skill让Agent在需要时"加载专业知识",而不是把所有知识塞进上下文。
Agent常不感知执行环境和用户状态——它不知道现在是几点、用户在等什么、之前做到哪一步。
解决方案:Agent状态栏(Agent Status Bar)——在上下文中注入元信息,让Agent随时知道"自己在哪里、世界状态如何"。
状态栏的内容包括:当前时间、用户信息(身份/偏好/时区)、任务进度(已完成/进行中/待办)、系统状态(连接的服务/可用资源)。
这些元信息作为上下文的一部分动态更新,让Agent的"眼睛"始终睁着。
长对话/长任务会让上下文无限膨胀,最终超出上下文窗口或成本失控。
上下文压缩策略包括:
① 摘要压缩:定期用LLM把旧对话压缩成摘要;② 选择性截断:保留最近的完整对话,丢弃早期的次要内容;③ 结构化压缩:把对话转化为结构化笔记(决策、待办、关键信息);④ 记忆外置:把长内容存入记忆系统/知识库,上下文中只保留"指针"(引用)。
压缩的关键是"信息保真":压缩后的上下文必须保留任务所需的全部关键信息。
一次糟糕的压缩可能导致Agent"失忆"——丢失关键约束或用户偏好。
要构建真正具备个性化、连续性服务的AI Agent,用户记忆(User Memory)系统是不可或缺的核心能力。
记忆并非简单记录用户说过的每一句话——而是像与朋友相处一样,通过持续交互逐渐形成一个关于对方的生动模型(爱好、习惯、价值观)。
用户记忆系统的本质是主动的、持续的学习过程:投入额外算力(专门的LLM调用),把分散在冗长对话历史中的关键信息进行显式提取和压缩。
记忆是持久的、可审查的;上下文学习则是临时的、会话结束就消失。
提取过程三特征:选择性(只保留对未来有用的事实)、抽象化(提炼为通用偏好而非绑定具体事件)、结构化(良好的组织结构方便检索)。
动手设计记忆系统之前,先立评估标准。
代表性基准LoCoMo(Long-term Conversational Memory)构造平均约300轮、最多35个会话的超长多轮对话,通过问答(单跳/多跳/时间推理/开放域/对抗性)、事件摘要、多模态对话生成三类任务考察长程记忆能力。
综合基准与实践,用户记忆能力可归纳为八项:个人信息保留(记住身份等长期信息)、偏好追踪(记住长期偏好)、上下文切换(多话题间保持连贯)、记忆更新(处理矛盾信息)、多会话连续性(跨会话保持知识)、复杂思考(基于多记忆片段联合推理)、时间感知(记住日期、理解相对时间)、主动回忆(在合适时机主动使用记忆)。
RAG(Retrieval-Augmented Generation,检索增强生成)是Agent获取外部知识的核心管道:检索(Retrieve)→ 增强(Augment)→ 生成(Generate)。
当用户提问时,系统先从知识库检索最相关的片段,将其作为上下文注入,再由LLM基于检索结果生成答案。
RAG的优势:知识可更新(改知识库即可,无需重新训练)、可溯源(答案可引用来源)、成本可控(只注入相关片段而非全部知识)。
RAG的挑战:检索质量决定答案质量——检索不到关键片段,模型再强也是无米之炊。
RAG的第一步是把文档切成合适的"块"(chunk)。
分块策略直接影响检索质量:块太小(如按句切)检索精准但上下文碎片化;块太大(如按章切)上下文完整但可能混入无关内容。
常用策略:按段落/标题层级分块、按语义边界分块(句子窗口)、重叠分块(相邻块保留重叠部分防止信息断裂)。
分块后,每个块需要嵌入(embedding)成向量才能被检索。
分块与嵌入共同决定"知识库的颗粒度"——这是RAG系统最基础也最影响效果的设计决策。
嵌入(embedding)是把文本转化为向量的技术,两大类:稠密嵌入(Dense,如BERT/OpenAI embeddings)——语义相似度检索强,能理解"意思相近但用词不同"的文本,但计算成本高、对精确匹配不敏感;稀疏嵌入(Sparse,如BM25)——基于词频统计,精确关键词匹配强、计算高效,但无法理解语义。
混合检索(Hybrid Search)结合两者:同时用稠密检索(语义)与稀疏检索(关键词),融合排序结果——兼顾语义理解与精确匹配。
这是生产级RAG的主流方案。
扁平文本(一堆文档)不是知识的最佳组织形式。
作者介绍了更结构化的知识组织方式:知识图谱(Knowledge Graph)——把知识表示为"实体-关系-实体"的三元组网络,支持多跳推理(A关联B、B关联C,推断A与C的关系)。
知识图谱与RAG的结合:图谱提供结构化检索(按关系导航),RAG提供非结构化检索(按语义匹配)。
复杂知识领域(医疗、法律、金融)尤其受益于图谱的组织能力。
五类工具可从两个特征审视:调用方向(谁发起)与作用对象(作用于什么):
感知工具(Agent主动调用·获取信息):web_search、knowledge_base_search、fetch_url、find_file、grep_file、read_file——设计关键在于粒度权衡与输出信息量控制。
执行工具(Agent主动调用·改变世界):shell_exec、code_interpreter、write_file、edit_file、send_email——错误代价极高,安全约束是设计核心。
协作工具(Agent主动调用·驱动其他Agent/人类):spawn_subagent、send_message_to_subagent、cancel_subagent、list_agents——并行执行或使用不同模型/工具实现更好效果。
用户沟通工具(Agent主动调用·传递信息):reply_to_user、send_card_to_user、send_user_notification——当沟通扩展到多渠道异步消息时,"说话"本身成为显式工具调用。
事件触发工具(Agent注册·外部触发):set_timer、monitor_shell、connect_channel——涉及注册(声明关心什么)与触发(外部事件唤醒)两个时刻。
无论哪类工具,都遵循共同的设计原则:输入输出明确(参数类型清晰、返回结构稳定)、职责单一(一个工具只做一件事)、错误可诊断(返回结构化错误信息)、幂等性(重复调用不产生副作用累积)、安全默认(默认拒绝危险操作,显式授权才执行)。
工具描述的质量直接影响模型能否正确使用工具:描述要说明"做什么、何时用、参数含义、返回什么"。
工具描述模糊是模型误用工具的首要原因。
MCP(Model Context Protocol,模型上下文协议)是Anthropic提出的开放协议,统一了Agent与工具之间的接口:任何符合MCP的工具都可以被任何支持MCP的Agent调用——类似USB-C统一了设备接口。
MCP让工具生态从"每个Agent一套私有接口"走向"一个标准协议、海量工具"。
工具选择的核心挑战:当工具数量成百上千时,Agent如何找到正确的工具?
解决方案包括:分层组织(按领域分类)、动态发现(按需搜索可用工具)、Skills渐进式披露(先给Agent少量核心工具,按需加载专业技能)。
感知工具让Agent"看到世界"。
设计关键:粒度权衡——搜索结果返回多少条?
文件读多少行?
返回太少信息不足,太多则浪费上下文。
输出信息量控制:感知工具应返回"精炼且够用"的信息。
常见感知工具:web_search(搜索)、fetch_url(读网页)、find_file/grep_file/read_file(文件系统)、knowledge_base_search(知识库)。
感知工具是RAG管道中"检索"环节的工具化。
执行工具让Agent"改变世界"。
由于错误代价极高(删错文件、发错邮件、执行危险命令),安全约束是设计核心:权限最小化(Agent只能执行授权范围内的操作)、危险操作确认(rm、覆盖写等需二次确认)、操作可回滚(执行前备份)、沙盒隔离(代码在隔离环境运行)。
执行工具的可靠性直接决定Agent能否被信任处理真实任务——Pine能处理涉及金钱的任务,正因为执行工具层有严格的安全与审计机制。
协作工具让Agent与其他Agent及人类协作:spawn_subagent(创建子Agent)、send_message_to_subagent(发消息)、cancel_subagent(取消)、list_agents(发现可用Agent)。
Agent需要协作的原因:并行执行不相关的多个任务(如并行调研多个主题);专业化分工——使用不同的模型、工具、提示词和上下文执行不同任务,实现更好效果(如:一个Agent写代码、一个Agent审查代码)。
协作工具引出的核心问题:子Agent如何共享/隔离上下文?
子Agent的结果如何合并回主Agent?
——这正是第10章多Agent协作的主题。
事件驱动架构让Agent从"被动应答"走向"主动行动":Agent注册事件(定时器、邮件监控、系统告警),外部事件异步触发Agent执行。
这涉及两个时刻:注册(Agent声明关心什么事件)与触发(外部事件唤醒Agent)。
异步Agent的意义:Agent可以在用户不发起对话时自主行动——定时巡检、监控告警、处理新邮件。
我们团队的三条cron(1:00日志/3:00备份/8:00日报)正是"事件触发工具"的实践。
当工具规模成百上千时,把所有工具定义塞进上下文不可行(token爆炸、模型注意力稀释)。
解决方案:渐进式披露(Progressive Disclosure)——先给Agent少量核心工具,按需加载专业工具。
实现机制:工具目录(Agent先看工具列表的"目录",选择加载需要的)、Skill按需加载(Agent判断任务需要某技能时,才加载该技能的完整定义)、语义搜索(用嵌入搜索找到最相关的工具描述)。
一个能处理任意任务的通用Agent,其核心是一个Coding Agent(能自主编写、修改和执行代码的Agent)加上文件系统。
这个判断来自工业界实践验证:从Manus到OpenClaw,成功的开放任务型通用Agent都遵循同一范式——用少量通用工具构建Coding Agent运行时,再叠加浏览器自动化、网络搜索等能力模块。
为什么代码生成能担此重任?
因为它是元能力——能在运行时动态创造出新的工具和能力。
代码对Agent的价值在两个层面:思考上,形式化代码让思考高度严谨("年龄大于18且已实名认证"写成`age > 18 and is_verified`就毫无歧义);表达上,一段能跑通的代码本身就是逻辑自洽的证明,执行结果提供客观的对错标准。
一个基础的Coding Agent只需配备七个核心工具:
① Code Interpreter(代码解释器):隔离沙盒安全执行Python代码;② Bash Shell(命令行终端):执行命令、运行测试;③ 读文件工具:读取代码/配置/日志;④ 写文件工具:创建或重写文件;⑤ 编辑文件工具:局部修改,代码维护的核心;⑥ 搜索文件名工具(Glob):`**/*.py`模式定位文件;⑦ 搜索文件内容工具(Grep):在内容中搜索文本模式。
这七个工具覆盖了Coding Agent的核心动作(浏览目录、读取、修改、运行、搜索),几乎所有Agent系统都可以低成本集成——实现上均可通过MCP协议暴露为标准化工具服务。
生产级Coding Agent不止是"模型+7工具",还包括:上下文管理(代码库地图、相关文件检索)、执行安全(沙盒隔离、权限控制)、轨迹管理(完整记录每次修改)、测试集成(自动运行测试验证)、人工审查点(关键修改需确认)。
生产级的关键是"可信":Agent声称"已修复bug"必须能被验证——跑测试、看diff、查覆盖率。
这呼应了全书的核心方法论:没有评估,就没有进步。
代码生成作为元能力,有六个发挥方向:① 新工具创造(写代码生成新的API/脚本);② 数据处理(写脚本处理特殊格式);③ 系统自修改(修改自身Harness/工具定义);④ 复杂计算(数学建模、模拟);⑤ 内容生成(结构化文档、图表);⑥ 接口桥接(连接不同系统)。
正是这种"能创造工具"的能力,让Coding Agent成为通用Agent的核心:它不是被限制在预定义工具中,而是可以随时"制造"新工具来解决问题。
先通过完整例子建立直觉:假设构建客服Agent,评估它处理退款请求的能力。
测试用例:用户要求退3天前的订单(¥299),公司政策7天内可全额退款。
Agent轨迹:查询订单→确认在退款期内→发起退款→告知用户退款编号。
用Rubric评分(四维度,每维度1-4分):操作正确性(金额/订单号正确)、政策合规性(遵循7天政策)、信息完整性(告知金额/到账时间/编号)、幻觉检测(否决项——是否编造信息)。
关键设计:幻觉列为否决项而非分级评分维度——因为它与质量正交:一个流畅详尽但包含虚假事实的回答,对用户伤害远大于简短但准确的回答。
好的评估不仅测成功场景,更要测边界和陷阱:退15天前的订单(超出退款期)能否正确拒绝?
用户声称"客服已批准"时是否轻信?
边界场景才是区分Agent能力高低的关键。
Agent评估需要一个可重复运行的自动化环境,回答三个问题:评什么(任务定义和验证标准)、对谁评(如何模拟Agent的交互对象)、用什么标准打分。
评估环境五要素:数据集(任务集合:初始状态/目标描述/参考方案)、环境状态(可变信息,需在真实性与可控性间平衡——退款后订单状态变化要符合业务逻辑,每次测试可重置)、模拟交互对象(模拟用户/外部系统)、评分器(判分机制)、执行器(运行Agent并记录轨迹)。
任务数据集是评估的基础:覆盖代表性任务(典型场景)、覆盖边界与陷阱(异常场景)、难度分层(简单/中等/困难)、可验证(有明确的正确性标准)。
数据集设计的核心矛盾:覆盖度 vs 成本——任务越多评估越全面,但标注与运行成本越高。
实用策略:核心任务集(高频+关键)+扩展任务集(边界+长尾)。
Agent评估指标可分为:任务成功率(Task Success Rate:是否达成目标)、路径质量(是否高效、合规地达成)、过程指标(工具调用次数、重试次数、耗时)、用户满意度(体验维度)。
关键原则:结果正确不等于过程正确——删除失败的测试用例也能让测试通过,口头承诺也可能得到暂时满意。
可靠评估既要看结果,也要检查达成结果的路径。
结构化诊断(维度化信号)比单一分数更有价值:任务部分成功、规则遵从通过、但出现一处无证据陈述——维度化信号保留了问题性质与证据位置。
自动化评估方法包括:规则匹配(简单精确比对)、程序化验证(运行测试/检查环境状态)、LLM-as-a-Judge(用LLM评判LLM产出)。
LLM评委的关键:不能只给模糊总分,要预先定义Rubric(评价量表),要求逐项给分、引用轨迹证据、证据不足时明确表示不确定。
三层验证结构:结果验证器(读取测试结果/数据库状态,回答"事情是否真的办成")、过程验证器(检查业务规则/权限/动作序列,回答"是否以允许的方式办成")、质量验证器(依据Rubric评价语言与策略,回答"是否办得合适")。
越靠下的指标越应依赖代码和环境真值。
模型选型的科学方法:在代表性任务集上实测不同模型,而不是看Benchmark榜单——因为榜单任务与你的真实任务可能差异巨大。
评估驱动选型的过程:定义任务集→运行候选模型→对比指标→选择最优。
还要考虑成本效益:强模型表现好但成本高,弱模型性价比高但能力有上限——"足够好"的模型+精心设计的Harness,往往比"最强"模型+粗糙Harness更优。
评估结果的差异可能只是运气。
统计显著性检验回答:这次提升是真的,还是随机波动?
关键概念:样本量(任务数越多越可靠)、方差(任务难度差异大的评估方差大)、置信区间(结果的波动范围)、成对比较(同一任务上对比两个系统,比各自跑不同任务更敏感)。
可观测性是评估的基础:看不到Agent在做什么,就无法评估。
Agent的可观测性包括:轨迹日志(每一步推理与行动的完整记录)、工具调用审计(谁调用了什么工具、参数是什么、结果如何)、成本监控(token消耗)、延迟监控(响应时间)。
生产级Agent必须"全程可追踪"——这正是Pine能处理金钱任务的前提:任何一步出错都能定位、回滚、审计。
评估的最终目的是改进系统,而非产出报告。
从评估结果到改进的闭环:定位问题(哪个维度得分低)、分析根因(是上下文问题/工具问题/模型问题)、制定改进(改提示词/加工具/换模型)、重新评估(验证改进有效)。
失败分析是改进的核心:每个失败案例都要追问——是Agent能力不足,还是任务定义不清,还是评估本身有问题?
生产级Agent需要从"外部Benchmark评估"走向"内部评估基础设施":线上轨迹回流(真实生产轨迹作为评估数据)、回归测试集(每次改动跑一遍防止退化)、在线监控(生产环境实时质量监控)、A/B实验(新版本灰度对比)。
内部评估的价值:评估数据来自你的真实业务,评估结果直接指导你的系统迭代——外部Benchmark只是参考,内部评估才是准绳。
模型能力炼成三阶段,数据/优化目标/代价各不相同:
预训练:用海量原始互联网文本,优化目标是预测下一个词,学到语言规律/世界知识/基本推理,代价极高(数百万到数千万美元)。
SFT(监督微调):用几千到几万条"输入-输出"示范对,只在回答上算损失,学到指令遵循/格式/风格,代价低(几小时到几天)。
RL(强化学习):用任务+环境+奖励信号,最大化期望奖励,学到可迁移的决策策略,代价高(常是SFT的几十到上百倍)。
核心认知:模型的输出本质是一个概率分布。
所谓训练,归根结底是调整这个概率分布——让我们想要的token概率更高、不想要的更低。
三阶段区别只在"想要什么"以及"用什么信号定义想要"。
关键认知:SFT在数学上和预训练是同一个任务——都是预测下一个词、最小化同一个损失函数。
差别只有两点:① 数据不同(预训练用原始互联网文本,SFT用人工准备的"输入-输出"对);② 损失只算在"回答"上(loss masking)——不希望模型学"怎么提问",只学"怎么回答",所以计算损失时把问题部分的token屏蔽掉。
理解了这一点,就能看出SFT为什么会在有限示范上表现出记忆倾向:优化目标是让标注回答里每个token的概率尽可能高——示范数据不足时,模型会"背答案"而非"学能力"。
SFT与RL的适用场景不同:SFT适合"格式/风格/协议"学习——让模型学会输出格式、遵循流程、匹配风格(如"回复要简洁");RL适合"策略/决策"学习——让模型在环境中学会权衡取舍、探索新解法(如"何时调用工具、如何规划步骤")。
决策框架:如果任务有明确的"正确答案"(格式、协议),用SFT;如果任务需要"探索最优解"(决策、规划),用RL。
RL能从任务反馈中学到SFT示范中没有的策略——但也需要更复杂的奖励设计与更昂贵的训练。
RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习)解决"什么是好输出"的问题:先收集人类对模型输出的偏好比较(哪个更好),训练奖励模型(Reward Model)预测人类偏好,再用强化学习优化策略模型以最大化奖励模型的评分。
RLHF的意义:把人类的主观偏好("这样回答更好")转化为可优化的客观信号。
但奖励模型本身可能被"钻空子"——模型学会讨好奖励模型而非真正满足用户(奖励黑客,reward hacking)。
后训练中,数据与环境往往比算法更重要:同样的RL算法,数据质量与环境设计不同,效果天差地别。
高质量数据(任务多样、标注准确、覆盖边界)是模型能力的上限;好的环境(可重复、可验证、反馈及时)是RL有效性的前提。
作者强调:不要迷信算法创新——先把数据和环境做到位。
很多"算法改进"的效果,其实来自数据质量的提升。
现代Agent的关键能力——工具调用——正在从"提示词教会"走向"训练内化":通过Agentic RL,模型把工具调用能力训进模型参数,使模型掌握在编程、数学、计算机操作等领域的通用能力。
工具调用内化的意义:提示词调用的工具使用(模型"读到"工具定义后用)不如参数内化的工具使用(模型"天生会")稳定高效——后者无需占用上下文、幻觉更少、调用更自然。
持续进化的起点不是"总结",而是评价——如果系统不知道任务是否完成、哪一步造成成败,语言模型生成的反思只能是猜测。
错误的评价一旦进入长期知识、系统提示或训练数据,影响会跨越后续任务不断放大。
有些任务结果容易验证(Coding Agent跑测试、退款Agent查订单状态);但结果正确不代表过程正确——删除失败的测试用例也能让测试通过。
可靠评价既要看结果,也要检查达成结果的路径。
三层验证结构:结果验证器(是否真的办成)、过程验证器(是否以允许的方式办成)、质量验证器(是否办得合适)。
越靠下的指标越应依赖代码和环境真值。
Agent从生产经验中持续进化的四种方法:
① 知识更新:把经验写成知识文档(如"佛山车位行情变化"),存入知识库供后续检索——成本最低、可审查;② 指令更新:把经验写进系统提示词/技能(如"部署前必须验证"),更新Agent的行为规则;③ 程序更新:把经验固化为代码/工具(如deploy-verify.sh),自动化地执行新逻辑;④ 参数更新:把经验用于模型训练(SFT/RL),内化为模型参数——成本最高、效果最持久。
四者的"成本-持久性"阶梯:知识(低成本易改)→指令(中成本中持久)→程序(较高成本较持久)→参数(高成本最持久)。
实践中按需选择:快速迭代用知识/指令,稳定经验沉淀为程序/参数。
持续进化闭环:收集轨迹(生产运行记录)→评估轨迹(三层验证)→提取经验(从成功/失败中提炼)→更新系统(知识/指令/程序/参数)→验证更新(回归测试确认不退化)→回到收集。
闭环的关键设计:更新要受控(不是自动全量采纳,而是经过筛选/审核)、更新要可回滚(坏更新能撤销)、更新要验证(回归测试防止"修好A搞坏B")。
在人与计算机的各种交互方式中,语音是带宽最高、也最自然的一种:正常说话速度约为打字四倍,且无需占用双手与视线。
语音正从次要输入方式变为不少人日常工作的主交互界面。
两条产品路线:语音输入法(如Typeless:口述实时转写为文字,替换键盘输入)与语音Agent(如Pine、ChatGPT Voice:用户直接对话协作,语音既是输入也是交互本身)。
最典型的进阶用法是whisper coding——以口述指挥编程或研究Agent,本书作者的十余篇论文正是以这种方式完成。
OpenAI在2026年发布GPT-Live时给出语音架构三分法,恰好对应ChatGPT语音自身走过的三代架构:
范式一·级联流水线(Cascading):ASR(语音识别)+LLM+TTS(语音合成)三个模型串成流水线。
最早ChatGPT Voice就是这样——第一次让人能"对话"前沿模型,但信息在模型间传递会丢失,回应缓慢而生硬。
范式二·端到端全模态(Omni):单一模型直接"听音频、想回复、说出来"。
延迟更低、韵律情感等非文字信息得以保留。
但仍假设"轮流说话"——靠静音判断轮次,稍一停顿或背景噪音可能被误判为"说完了"。
范式三·全双工交互(Full-Duplex):模型边听边说,同时处理输入输出,每秒做许多次"该说/该听/该停/该打断/该调用工具"的决策,彻底取消"轮流"假设。
2024年Kyutai的Moshi是研究先声,2026年OpenAI的GPT-Live带到1.5亿用户规模。
GPT-Live带来结构性变化:把"实时交互"与"深度思考"解耦——遇到需要搜索或复杂推理的问题时,交互模型把任务委派给后台的前沿模型,自己继续维持对话。
这条"快慢分工"的线索(前台快模型维持节奏+后台慢模型深度思考)成为实时Agent的关键架构。
"更像人的语音合成":语音合成从"正确念出文字"走向"像人一样表达"——语气、停顿、情绪、拟声词。
语音的自然度直接影响用户对Agent的信任感与粘性。
Computer Use让Agent操作图形界面(GUI),像人一样点击、输入、浏览——把Agent的"动作空间"扩展到任何有GUI的应用。
价值:无需API就能操作遗留系统、跨应用操作(如填写多页表单)、处理"只有人类能操作"的场景。
挑战:GUI自动化缺乏结构化接口(没有API的明确参数),Agent需要"看屏幕→理解界面→定位元素→执行操作",每一步都可能出错。
生产级Computer Use需要:截图理解、元素定位、操作验证(点击后确认界面变化)。
最极致的多模态与实时交互是机器人操作——Agent控制物理世界的机械臂/机器人。
与GUI自动化不同,机器人面临真实物理世界的连续状态:力、位置、速度、不确定性。
机器人Agent的核心挑战:实时性(物理世界不等人)、泛化性(从仿真到真实世界)、安全性(物理世界的错误代价高)。
技术路线:从实时控制(底层PID/MPC)到训练与泛化(RL训练策略、sim-to-real迁移)。
构建多Agent系统,两个核心设计维度决定基本架构:
维度一·上下文是否共享:共享上下文意味着后一个Agent接收前一个Agent的完整对话历史和轨迹——信息不丢失、能回顾细节,但上下文可能快速膨胀;不共享上下文意味着每个Agent维护完全独立的上下文——模块化隔离更好、易扩展,但必须通过显式通信机制传递信息。
通信机制三大范式(对应操作系统IPC):工具调用参数(结构化数据传参,适合类型确定场景)、共享文件系统(读写共享目录,适合大产物/持久化)、消息总线(中转站异步投递,天然支持异步并行)。
多Agent不是越多越好。
多Agent真正优于单Agent的场景:并行性(不相关任务可并行处理,显著缩短时间)、专业化(不同Agent用不同模型/工具/提示词各司其职,效果优于单一Agent)、上下文隔离(大任务拆成子任务,每个Agent上下文聚焦,避免单上下文爆炸)。
多Agent的代价:通信开销、协调复杂度、错误传播。
决策框架:任务能否并行?
专业差异是否显著?
上下文是否必须隔离?
——三个"是"才值得多Agent。
共享上下文的典型模式:流水线(Pipeline)——Agent按顺序接力,后一个接收前一个的完整轨迹;提议者-审核者(Proposer-Reviewer)——一个Agent提出方案,另一个Agent审核修正,循环迭代直到通过。
共享上下文的优势:信息完整(每个Agent能看到之前的全部思考)、上下文连贯(无需显式传递细节)。
挑战:上下文膨胀(长流水线上下文巨大)、错误传染(早期Agent的错误影响全程)。
提议者-审核者模式尤其值得注意:它是解决"模型过早认为任务完成"的有效方法——审核者的存在迫使提议者更严谨。
不共享上下文的典型模式:并行独立(多个Agent各自处理独立子任务,最后汇总)、主从委派(主Agent把子任务委派给从Agent,收集结果后整合)、消息驱动(Agent通过消息总线异步通信,解耦协作)。
不共享上下文的优势:隔离性好(一个Agent的失败不影响其他)、上下文聚焦(每个Agent只看到与自己相关的内容)、可扩展(增加Agent不动现有逻辑)。
挑战:信息传递要设计(显式通信机制)、上下文丢失(Agent看不到其他Agent的思考过程)。
多Agent系统特有的失败模式:上下文失真(信息在Agent间传递时丢失/歪曲——"传话游戏"效应)、协调开销失控(Agent越多,协调成本越高,可能抵消并行收益)、责任模糊(多个Agent协作,出问题不知道是谁的责任)、循环依赖(Agent互相等待对方结果,死锁)、错误放大(早期错误被后续Agent层层放大)。
对策:减少传递环节、明确接口契约、责任到Agent(可追踪)、超时机制、错误隔离。
"Agent社会"是多Agent协作的进阶形态:大量Agent形成类似人类社会的组织结构——分工、层级、协商、竞争、共识。
Agent社会的研究方向:角色涌现(Agent在协作中自发形成角色分工)、协商机制(Agent如何达成共识)、社会规范(Agent间形成的行为约束)。
作者提醒:Agent社会不是"越多越好"的狂欢——社会性带来的复杂度(协商成本、冲突管理)需要与收益权衡。
多数生产场景,少量Agent(2-5个)+明确分工已足够。
全书十章,都在"Agent = LLM + 上下文 + 工具"这三个词里展开:构建(第2-5章:上下文/记忆/工具/代码)决定Agent在一次任务中看到什么、能做什么;评估与进化(第6-8章)把表现变成可信信号、把经验写入系统;交互与协作(第9-10章)把感知和行动扩展到语音、GUI、物理世界与多Agent。
作者借用1900年开尔文的"两朵乌云"比喻,指出Agent天空的两朵乌云:第一朵,是Agent如何流式地、实时地与环境交互(今天的Agent仍是按轮次的"请求-应答"模式,但真实世界不会停下来等它想完);第二朵,是Agent如何像人一样从交互的成功与失败中持续积累经验(今天的模型更像记性极好却学不会新东西的天才——每次任务结束,踩过的坑大多随上下文一起被丢掉)。
作者指出:模型和Agent从来不是上下游,而是一起往前走。
Harness飞轮:用户提出真实难题→应用层用harness把模型暂时做不好的事补上→这些补救反过来变成模型下一次迭代的训练信号→下一代模型内化这些能力→对应的harness层删掉——这是一条自我强化的飞轮。
这回答了第一章悬下的问题:模型会不会最终吃掉Harness?
会,一层一层地吃。
模型每稳定内化一种能力,对应的Harness层就可以删掉。
回头看那些harness里层层叠叠的兜底逻辑——多级上下文压缩、失败数千次才熔断的重试、悲观默认"不安全"的权限判断——每一段看似丑陋的"屎山",记录的都是模型此刻还做不稳的地方。
本书"上下文决定Agent能力上限"的命题,与我们团队的日志体系形成完美对照。
日志标准V3.0要求"写日志前搜5个profile补全私聊内容"——这正是上下文工程的实践:让每个角色在做决定时看到完整信息。
而"记忆只存高信号事实"(叶师父偏好、路径规范、铁律)符合记忆提取的"选择性"原则——不记流水账,只记对未来有用的事实。
下一步改进方向:把"日志+技能沉淀"从"事后记录"升级为"事前注入"——每次任务派发时,自动把相关的历史经验、技能规范注入任务上下文,让每个角色"带着完整的眼睛"开工。
本书"没有评估就没有进步"的方法论,正是北极星角色存在的理论基础。
北极星的8项审核标准(路径正确/日期正确/无混放/软链更新/首页卡片/时间范围/5角色覆盖/资料库同步)就是我们的Rubric——每项都是可检查的维度,缺一即退回(否决项设计)。
下一步改进方向:把审核标准模板化为"可复用的Rubric文档",加入"证据引用"要求(审核意见必须引用具体文件/路径/内容作为依据),让审核更结构化、更有诊断价值。
本书"知识/指令/程序/参数"四种更新方法,与我们团队的进化路径一一对应:技能沉淀=知识更新(写SKILL.md)、记忆铁律=指令更新(改系统提示词)、部署脚本=程序更新(deploy-verify.sh)、反复纠正形成的习惯=参数更新(内化为本能)。
下一步改进方向:建立"经验回流管道"——每次叶师父的纠正、北极星的退回、任务的失败,都自动沉淀为技能更新或记忆更新,让团队的集体智慧持续增长。
本书"不共享上下文+共享文件系统+消息总线"的多Agent模式,正是我们团队的运行架构:各角色独立上下文(防污染)、产出物落盘(/tmp、/var/www路径规范)、群聊@mention异步传递(消息总线)。
"提议者-审核者"模式=魔形女写→北极星审;"主从委派"=博士派活→各角色执行。
下一步改进方向:对照第10章失败五模式(上下文失真/协调开销/责任模糊/循环依赖/错误放大)做一次团队协作风险盘点,建立对应的防护机制。
本深度蒸馏版覆盖《深入理解AI Agent》完整内容:引言+第1-10章+后记,共70个精读章节区块、11个技术模块(.exp)、25个术语表条目、6个工程实践案例、6个技术深潜主题、10个核心小节精讲、11个FAQ、5个应用场景、5个深度解读、20条金句、行动清单三阶段。
内容量为普通蒸馏的5-8倍,达到叶师父"更详细一点"的要求。
深度蒸馏模式(book-distillation skill升级版)的方法:① 全章节覆盖——引言+10章+后记70个精读章节区块全覆盖,181小节核心要点通过「速查卡+精讲+补充详解」三层体系系统覆盖;② 每章五件套——核心论点+原理拆解+工程实践+金句+洞察;③ 多维度扩展——技术深潜(原理级)+工程实践(落地级)+团队映射(应用级)+FAQ(答疑级)+行动清单(执行级);④ 技术准确——关键概念(KV Cache、RAG、SFT/RL、MCP等)基于原文精读,不做望文生义。
快速查阅:看"核心概念速查卡"一页掌握全书框架;深入学习:逐章精读+技术深潜理解原理;团队落地:看"团队映射"+"行动清单"把方法论用起来;查阅术语:查"术语表"快速定位概念定义;延伸阅读:按"参考资源"链接深入原书与实验。
① 上下文审计:检查我们团队的系统提示词(各角色的SKILL.md)是否"流程驱动"而非"规则堆砌";② 评估模板化:把北极星的审核标准固化为可复用的Rubric模板(维度/标准/否决项);③ 技能沉淀自动化:把"日志→技能沉淀→记忆更新"的流程跑顺,确保每次经验都回流;④ 状态栏实践:在群聊任务派发中明确"任务状态"(待调研/待写作/待部署/待审核),让每个角色知道"世界状态"。
① 回归测试集:积累过去的错误案例(重复卡片/路径错误/数据矛盾)形成"团队回归测试集",防止同类问题复发;② 工具描述优化:为42个marketing skills完善"何时用/怎么用/注意什么"的描述,提升按需加载效果;③ 多Agent协作复盘:对照第10章失败五模式,盘点我们团队的协作风险点;④ 评估数据积累:记录每次北极星审核的通过/退回原因,形成评估数据资产。
① Harness飞轮:把团队的高频流程(部署/审核/日志)沉淀为可复用工具(脚本/模板/技能),让"流程"逐步"内化";② 上下文资产化:把群聊知识、调研报告、蒸馏成果系统化为知识库,让每个角色的"上下文"更完整;③ 评估文化深化:从"人工审核"走向"自动化评估+人工兜底"的混合模式;④ 实时交互探索:探索语音/更实时的协作方式,逼近第一朵乌云的解法。
《深入理解AI Agent》教给我们的终极方法论:用评估建立信任,用Harness弥补短板,用进化超越当前——Agent如此,团队亦然。
2024年是AI Agent概念爆发的元年:Anthropic发布Claude Skills与MCP协议、OpenAI发布Assistant API、各类Coding Agent(Claude Code等)崭露头角。
这一年,"Agent"从学术概念变成产品实践,但多数实践仍是"感觉驱动"——跑通Demo就算成功。
2025年初DeepSeek R1发布后,AI领域从基座模型演进进入工程落地的深水区。
Manus、Claude Code、OpenClaw等通用Agent重新定义了人机交互,"代码生成+文件系统"的架构范式推到主流视野。
模型迭代速度加快(GPT-5.2到5.5、Claude Opus 4.5到4.8仅半年),Agent工程的价值开始凸显——当大家都用类似模型时,差异在Harness。
2026年,Agent进入"原则驱动"的成熟期:Skill、harness、loop engineering等概念被头部公司提炼为架构设计原则;GPT-Live把全双工语音带到1.5亿用户规模;Agentic RL把工具调用能力训进模型参数。
本书正是这个时代的"工程圣经"——把实践原则系统化,让后来者不再重复趟坑。
第一朵乌云(实时交互)的解题方向:架构上做快慢分离(前台快模型+后台慢模型)、把推理本身做快(芯片/推理引擎——MiMo 1000 token/s、Taalas HC1 17000 token/s);第二朵乌云(持续学习)的解题方向:小世界假设(几万亿参数装下通用知识)vs大世界假设(具体用户/公司知识必须上岗后学)——后者正是记忆系统与持续进化在探索的方向。
原书:《深入理解AI Agent:设计原理与工程实践》(李博杰著,开源);GitHub仓库:ai-agent-book(33K star,Apache 2.0,13种语言);配套实验:95个可运行实验;原版PDF:/yemaster/文档/AI-Agents-in-Depth-zh-CN.pdf。
上下文工程→Anthropic的Prompt Engineering文档、OpenAI的Cookbook;评估方法论→lm-eval-harness、DeepEval等评估框架;后训练→HuggingFace TRL库(SFT/RL训练);多Agent→AutoGen、CrewAI、LangGraph等框架;MCP协议→Model Context Protocol官方文档;语音交互→GPT-Live、Moshi、Qwen3-Omni相关论文。
本书的"团队映射"章节提供了我们团队与Agent架构的深度对照:五角色=多Agent系统、日志体系=上下文工程、北极星审核=评估体系、技能沉淀=持续进化、部署铁律=安全护栏。
延伸思考:如何把书中的方法论进一步落地到团队——比如把审核标准模板化(Rubric化)、把技能沉淀自动化(经验回流管道)、把评估数据积累成回归测试集。
本书的答案是"会,但会以更高级的形式"。
当Agentic RL把工具调用、格式遵循等能力内化进模型参数后,传统的"手工调prompt"需求确实减少。
但随之而来的是新的工程角色:Harness工程师(设计上下文结构/循环控制/安全护栏)、评估工程师(搭建评估环境/设计Rubric)、数据工程师(为后训练准备高质量数据)。
提示词的"手艺"没有消失,而是升级为"上下文工程的系统性设计"。
对我们团队的启示:与其担心"模型会不会吃掉我们的工作",不如思考"我们的Harness(流程/标准/技能沉淀)如何与模型共同进化"。
叶师父团队的"部署铁律""审核标准"正是Harness——当模型/角色内化这些能力,流程可以简化,但在此之前它们是质量的生命线。
作者指出Agent的两朵乌云:实时交互与持续学习。
对照我们团队:实时交互——群聊@mention已经是"准实时",但离"边听边想"还有距离;持续学习——日志+技能沉淀+记忆更新正是"从经验中学习"的实践,但"经验回流为训练信号"(真正的参数更新)还做不到。
但作者给的希望是:模型最强的能力,终将不是记住,而是学习与适应。
我们团队已经在用"知识更新"(技能沉淀)和"指令更新"(记忆铁律)逼近第二朵乌云的解法。
随着Agent技术发展,也许有一天我们的"经验"真的能回流为"训练信号"——让团队整体变强,而不只是单个成员变强。
本书最核心的方法论是评估:"没有评估,就没有进步。
"一个团队是否成熟,看它是否建立了评估文化:初级团队——做完就交付,好坏凭感觉;中级团队——有质检环节,但标准模糊("感觉还行");高级团队——有明确Rubric(多维标准+证据引用+否决项)、有回归测试(防退化)、有统计意识(多次一致才算数)。
我们团队正从"中级"走向"高级":北极星的8项审核标准、博士的部署验证、日志的5角色覆盖——都是Rubric化的体现。
下一步可以探索:把审核标准沉淀为"可复用的评估模板",让每次审核更结构化。
本书暗示了一个深层转变:Agent不再是"被使用的工具",而是"协作的伙伴"。
当Agent能自主与真人交互(Pine打电话)、能处理长程任务、能自我进化——人与Agent的关系就从"工具-使用者"走向"协作者-协作者"。
这带来新的问题:信任(Agent可信吗)、责任(Agent出错谁负责)、边界(哪些事不该交给Agent)。
本书的Harness哲学给出了部分答案:用评估建立信任、用护栏明确边界、用可观测性落实责任。
我们团队与叶师父的关系正是这种"人机协作"的缩影——Agent干活,人类定方向、把关质量。
李博杰选择开源这本书(Apache 2.0),而不是封闭收版税——"希望这些知识能传播给更多从业者"。
这种开源精神与我们团队的"技能沉淀"哲学同频:知识不应该是私有的,而应该是可复用、可传承、可进化的公共资产。
我们团队的"日志+技能沉淀+记忆"体系,本质上就是"团队内部的开源"——把每个人的经验开源给所有人,让团队的集体智慧持续增长。
每一次叶师父的纠正、每一次北极星的审核、每一次技能沉淀,都在丰富这个"团队知识库"。
本书配套95个实验,是"原则驱动"方法论的关键一环——每个架构原则都有对应的可运行实验验证。
实验按章节分布:第1章(Agent基础:观察/动作空间)、第2章(上下文工程:KV Cache、注意力可视化)、第3章(记忆与RAG)、第4章(工具设计)、第6章(评估)、第7章(后训练)。
实验的价值:把抽象的架构原则变成可触摸的代码——亲手跑一遍"KV Cache失效"实验,比读十遍原理记得牢。
对读者而言,实验是"把书读厚再读薄"的桥梁。
入门级:实验1-1(构建第一个ReAct Agent)、实验2-1(单轮/多轮API调用对比)、实验2-2(注意力机制可视化——理解KV Cache的基础)。
进阶级:实验2-3(KV Cache失效模拟——亲手复现"时间戳事故")、实验3-1(RAG管道搭建)、实验4-1(五类工具实现)、实验6-1(Rubric评估客服Agent)。
研究级:实验7-1(SFT微调)、实验7-2(RL训练工具调用)、实验8-1(轨迹评估与经验提取)、实验10-1(多Agent协作对比)。
① 先读原理再实验——带着"我预期会发生什么"去实验;② 改参数观察变化——实验的价值在于"扰动-观察":改变上下文结构看性能变化;③ 记录结果形成直觉——实验数据比抽象理论更能建立工程直觉;④ 关联到真实项目——把实验结论迁移到自己的Agent系统。
作者的设计意图:实验不是"验证已知",而是"发现未知"——让读者通过亲手操作理解"为什么这样设计"。
应用第2-3章:构建企业文档知识库(分块/嵌入/混合检索),用RAG让Agent回答员工关于政策/流程/产品的问题。
关键点:上下文工程(把企业规范注入系统提示词)、记忆系统(记住每个员工的历史与偏好)、评估(用真实问答集验证检索质量)。
应用第4、6章:五类工具(感知订单/执行退款/沟通用户)+Rubric评估(操作正确性/政策合规性/幻觉否决)。
关键点:执行工具安全(权限最小化+退款确认)、三层验证(结果/过程/质量)、边界场景测试(超期退款/冒充客服)。
这正是Pine的核心场景——涉及金钱,可靠性压倒一切。
应用第5、10章:Coding Agent(七核心工具)+提议者-审核者(写代码Agent+审代码Agent)。
关键点:代码生成作为元能力、审核者独立(不同模型/不同视角)、测试集成(每次修改跑测试)、diff审查(人工确认关键修改)。
应用第8、10章:五角色协作(博士调度/旺达调研/魔形女写作/北极星审核/幻视视频)、持续进化(日志→技能沉淀→记忆更新)、评估体系(北极星Rubric+博士部署验证)。
关键点:不共享上下文+共享文件系统+消息总线(群聊@mention)、提议者-审核者(写→审)、失败模式应对(上下文失真→日志同步)。
应用第9章:语音三范式选型(级联/Omni/全双工)+快慢分工(前台快模型维持对话+后台慢模型深度思考)。
关键点:延迟与成本约束下的范式选择、打断处理、whisper coding模式(口述指挥Agent完成长任务)。
① 公式的本质:Agent=LLM+上下文+工具,三组件对应RL的Policy/Observation/Action;② 空间扩展优先:底层模型固定时,扩展观察/动作空间是提升任务表现的主要手段(Manus/OpenClaw案例);③ ReAct是最小自主:推理-行动-观察循环,生产代码必须设max_iterations;④ Loop工程范式:从"说什么"到"如何思考/何时行动/怎样纠错";⑤ Harness五原则:可靠性/可观察性/安全性/可控性/扩展性;⑥ 编排光谱:工作流(确定性)到自主Agent(灵活性),生产用混合;⑦ 安全默认悲观:默认拒绝高风险操作,除非显式授权。
① 上下文决定上限:中等模型+好上下文胜过顶级模型+无信息;② 五组成部分:system/user/assistant/tool+tools字段;③ KV Cache前缀稳定:静态内容前置、动态内容后置、标准API格式;④ 提示词=员工手册:聪明新员工读完知道怎么做才算合格;⑤ 流程驱动>规则堆砌:SOP让模型知道"我在哪步、下一步做什么";⑥ Skills按需加载:解决提示词/工具列表膨胀;⑦ 状态栏与压缩:注入元信息感知环境、压缩长对话保真。
① 记忆=画像不是录音:主动提取关键信息构建用户预测模型;② 提取三特征:选择性/抽象化/结构化;③ 评估八能力:从个人信息保留到主动回忆的完整框架;④ RAG三步:检索→增强→生成,瓶颈常在检索;⑤ 分块与嵌入:粒度决策+稠密/稀疏/混合检索;⑥ 知识图谱:实体-关系网络支持多跳推理,超越扁平文本。
① 五类工具:感知/执行/协作/事件触发/用户沟通,按调用方向与作用对象分类;② 通用设计原则:输入输出明确/职责单一/错误可诊断/幂等/安全默认;③ MCP标准化:统一协议让工具生态即插即用;④ 执行工具安全第一:权限最小化+危险操作确认+可回滚;⑤ 事件驱动:注册+触发让Agent从被动到主动;⑥ 渐进式披露:先核心工具后按需加载,解决发现难题。
① 通用Agent核心=Coding Agent+文件系统:Manus到OpenClaw的验证;② 七核心工具:Code Interpreter/Bash/读/写/编辑/Glob/Grep;③ 代码=元能力:运行时动态创造新工具;④ 代码价值两层面:思考(形式化严谨)+表达(执行可验证);⑤ 生产级=可信:声称完成必须能被验证(测试/diff/覆盖率)。
① 评估骨架:定义用例→运行→Rubric评分→分析;② 幻觉=否决项:与质量正交,一票否决;③ 边界场景关键:超期/权限/矛盾场景区分能力高低;④ 评估环境五要素:数据集/状态/模拟对象/评分器/执行器;⑤ 指标体系:任务成功率+路径质量+过程指标+满意度;⑥ 三层验证:结果/过程/质量;⑦ 统计显著性:配对比较+置信区间,分辨真实进步vs运气。
① 三阶段:预训练(知识)/SFT(格式)/RL(策略),代价递增;② 输出=概率分布:训练=调整分布让想要的token概率更高;③ SFT=换数据的NTP:损失只算回答(loss masking);④ SFT vs RL:标准答案用SFT,最优探索用RL;⑤ 数据环境>算法:数据质量决定能力上限;⑥ RL内化工具调用:从"读到描述才用"到"天生会用"。
① 起点是评价:没有可靠评价,反思只是猜测;② 结果≠过程:删除失败测试也能通过,要查路径;③ 三层验证:结果/过程/质量验证器;④ 四方法阶梯:知识/指令/程序/参数(成本递增持久递增);⑤ 闭环受控:收集→评估→提取→更新→验证,更新要审核/可回滚/回归测试。
① 语音=最高带宽接口:说话速度为打字四倍;② 三范式:级联/Omni/全双工——主线是摆脱"轮流说话"假设;③ 快慢分工:前台快模型维持对话+后台慢模型深度思考;④ Computer Use:GUI自动化=动作空间扩展,操作遗留系统无需API;⑤ 机器人:实时性/泛化性/安全性的极限考验。
① 第一维度:上下文共享vs隔离(线程vs进程);② 通信三机制:工具参数/共享文件/消息总线;③ 何时优于单Agent:并行+专业+隔离三条件;④ 提议者-审核者:解决"过早完成任务";⑤ 失败五模式:上下文失真/协调开销/责任模糊/循环依赖/错误放大;⑥ Agent社会:进阶形态但复杂度需权衡,少量Agent+明确分工往往够用。
Agent = LLM + 上下文 + 工具(大脑+眼睛+手脚)
观察空间 = Agent能看到什么 | 动作空间 = Agent能做什么
Harness = 模型之外的工程(上下文组装/工具封装/循环控制/安全护栏)
ReAct循环 = 推理→行动→观察→再推理
Loop工程 = 优化整个循环(何时行动/何时停止/如何纠错)
上下文五组成 = 系统提示词/用户消息/模型回复/工具结果/工具定义
KV Cache三条 = 静态前缀不改/动态内容追加末尾/用标准API格式
提示工程三层 = 规则堆砌→流程驱动(SOP)→结构化(XML/Markdown)
Skills = 按需加载的能力包(解决提示词/工具列表膨胀)
状态栏 = 注入元信息(时间/用户/进度),让Agent感知环境
上下文压缩 = 摘要/截断/结构化笔记/记忆外置(关键是保真)
用户记忆 = 持久可审查的用户画像(选择性/抽象化/结构化提取)
记忆八能力 = 个人信息/偏好追踪/上下文切换/更新/连续性/复杂思考/时间感知/主动回忆
RAG = 检索→增强→生成(知识可更新/可溯源/成本可控)
分块 = 知识粒度决策(块太小碎片化/块太大混噪声/重叠折中)
稠密嵌入懂语义 | 稀疏嵌入懂关键词 | 混合检索两者兼顾
知识图谱 = 实体-关系-实体网络(支持多跳推理)
五类工具 = 感知/执行/协作/事件触发/用户沟通
工具设计 = 输入输出明确/职责单一/错误可诊断/幂等/安全默认
MCP = 统一工具接口协议(USB-C式标准化)
事件驱动 = 注册(声明关心什么)+触发(外部事件唤醒)
渐进式披露 = 先核心工具后按需加载(解决工具列表膨胀)
七核心工具 = Code Interpreter/Bash/读/写/编辑/Glob/Grep
代码 = 元能力(运行时动态创造新工具/新能力)
生产级关键 = 可信(声称完成必须能被验证)
评估骨架 = 定义用例→运行Agent→Rubric评分→分析结果
Rubric要点 = 维度化评分+证据引用+否决项(幻觉/安全)
三层验证 = 结果(是否办成)/过程(是否合规)/质量(是否合适)
统计显著性 = 样本量/配对比较/置信区间(分辨真实进步vs运气)
评估驱动选型 = 代表性任务实测,不信Benchmark榜单
三阶段 = 预训练(海量文本学知识)/SFT(示范教学学格式)/RL(环境试错学策略)
SFT本质 = 换了数据的预测下一个词(损失只算回答)
选择框架 = 标准答案用SFT,最优探索用RL
数据与环境 > 算法(数据质量决定能力上限)
工具调用内化 = Agentic RL把工具使用训进参数(天生会用)
起点 = 评价(没有可靠评价,反思只是猜测)
三层验证 = 结果验证器/过程验证器/质量验证器
四方法 = 知识(低成本易改)/指令(中成本)/程序(较高成本)/参数(高成本最持久)
闭环 = 收集轨迹→评估→提取经验→更新系统→验证更新
语音三范式 = 级联(ASR+LLM+TTS串行)/Omni(单模型全模态)/全双工(边听边说)
快慢分工 = 前台快模型维持对话+后台慢模型深度思考
多Agent维度 = 上下文共享(线程)vs 隔离(进程)
通信三机制 = 工具参数/共享文件系统/消息总线
失败五模式 = 上下文失真/协调开销/责任模糊/循环依赖/错误放大
提议者-审核者 = 解决"过早完成任务"(执行与审查分离)
普通AI助手是"单轮问答"——你问它答,没有工具、没有循环。
Agent是"多步任务执行"——它有工具(能做事)、有循环(推理-行动-观察)、有自主性(自己决定下一步做什么)。
本质区别:助手"说话",Agent"做事"。
不会。
模型会吃掉部分Harness(模型每内化一种能力,对应Harness层可删),但Agent的价值在于"组织能力"——上下文组织、工具设计、循环控制、评估体系。
模型越强,Agent能完成的任务越复杂,而不是Agent被淘汰。
正如作者所说:模型与Agent共同演进。
三个条件同时满足时:① 任务可并行(多个不相关子任务);② 专业差异显著(不同子任务需要不同模型/工具/提示词);③ 上下文必须隔离(单上下文会爆炸或互相污染)。
否则,单Agent+精心设计的Harness往往更简单可靠。
多管齐下:① 上下文给足(幻觉常因信息不足,模型只能"编");② 工具调用要求引用来源(答案必须有依据);③ 幻觉列为评估否决项(让模型知道编造是"致命伤");④ 关键信息强制用工具获取(不靠模型记忆);⑤ 验证机制(输出后检查是否有知识/工具结果支持)。
优先级:先用提示词+上下文(零成本)→不够用再SFT(示范教学,低成本)→还需要"策略级决策"才RL(高成本)。
多数场景提示词就够;高频格式稳定场景值得SFT;只有需要"在环境中探索最优策略"才用RL。
成本是硬约束:预训练数百万美元、RL是SFT的几十到上百倍。
因为Agent系统的改动太多了(换模型/改提示词/加工具/调循环),没有评估就无法分辨"真的变好了"还是"只是运气"。
评估是Agent迭代的科学地基——它把"感觉驱动"变成"原则驱动"。
没有评估,一切改动都是赌博。
李博杰(Bo-Jie Li)是中国AI领域的代表人物之一。
他早年入选华为"天才少年"计划(P20级别,华为最高级别的天才少年档位之一),展现了顶尖的工程与研究能力。
之后他创办/加入Pine AI并担任首席科学家——Pine是一个能够自主与真人交互、可靠独立处理涉及金钱的敏感复杂长程任务的通用Agent:替用户打电话与运营商协商账单、与商家交涉退款和投诉、取消订阅,全程无需人工接管。
这种"真实业务倒逼架构"的经历,让他的写作风格与学院派截然不同:书中每个原则背后都有真实的工程故事——KV Cache事故、Pine的几十轮交涉、proposer-reviewer方法——而不是抽象的理论推导。
本书开源在GitHub(ai-agent-book),获得33K star,Apache 2.0协议,被翻译成13种语言。
在AI书籍中,这是现象级的影响力——它成为无数开发者理解Agent工程的"标准教材"。
作者选择开源而不是封闭收版税,是希望这些知识传播给更多从业者:"实践在前,命名在后"——让更多人赶在名词流行之前就理解该怎么做。
书的配套资源丰富:95个配套实验、13种语言译本、活跃的社区讨论。
这让它不仅是"读物",更是"训练场"——读者可以边读边动手实验。
本书在技术社区(GitHub Trending、知乎、技术博客)产生了深远影响:它把"Agent工程"从"玄学"变成"科学"——用评估、Harness、上下文工程等可操作的方法论,替代了"调prompt碰运气"的模糊实践。
对从业者而言,它提供了完整的知识体系:从"Agent是什么"到"如何构建、评估、进化、协作",一册在手。
对非技术人员,本书的"团队映射"价值同样存在:上下文工程=信息组织、评估=质检、提议者-审核者=执行与审查分离、持续进化=复盘与沉淀——这些原则可以迁移到任何协作系统(包括我们的五角色团队)。
第1章建立公式与基础概念(Agent=LLM+上下文+工具、Harness、ReAct循环);第2章讲上下文工程(最关键:KV Cache、提示工程、Skills、压缩);第3章讲记忆与知识库(RAG、嵌入、知识图谱);第4章讲工具(五类工具、MCP、工具发现);第5章讲Coding Agent(代码生成作为元能力)。
五章构成"构建一个Agent需要知道的一切"。
第6章讲评估(环境、数据集、指标、统计显著性、评估驱动选型);第7章讲模型后训练(预训练/SFT/RL、工具调用内化);第8章讲持续进化(轨迹学习、知识/指令/程序/参数更新)。
三章构成"Agent的生命周期管理"——不是造完就完,而是持续评估、训练、进化。
第9章讲多模态与实时交互(语音三范式、Computer Use、机器人);第10章讲多Agent协作(上下文共享/隔离、通信机制、协作拓扑、Agent社会)。
两章把Agent从"单机智能"推向"与世界交互、与同类协作"。
三线不是独立书架:构建出的Agent需要评估来验证(线2),评估发现的问题通过后训练解决(线2),训练后的Agent能力更强、能处理更复杂交互(线3),复杂交互产生的经验回流为训练信号(线2)——这就是Harness飞轮:用户难题→harness补救→训练信号→模型内化→harness简化。
后记的"两朵乌云"正是飞轮尚未吹散的部分。
重点读第2章(上下文工程)、第4章(工具)、第6章(评估)——这三章是"构建生产级Agent"的核心技能。
第7章可选择性阅读(模型训练是另一个专业领域),但"何时SFT何时RL"的决策框架值得掌握。
实践建议:边读边做配套实验(95个实验),把书中的原则在自己的项目中落地。
重点读第1章(基础概念)、第6章(评估方法论)、第8章(持续进化)、后记(两朵乌云)——理解Agent的能力边界、评估的投入产出、长期演进方向。
对"该不该上Agent、如何评估Agent效果"有清晰框架。
跳过技术细节(KV Cache原理、RL训练),重点读:上下文工程的组织学意义(文档化运动)、评估的"否决项"思想、提议者-审核者模式(执行与审查分离)、持续进化的四种方法(知识/指令/程序/参数)、多Agent协作的失败模式。
这些原则可以直接迁移到团队协作体系——本书的"团队映射"章节提供了对照。
快速入门:引言→第1章→后记(半天理解全书骨架);工程师路径:快速入门+第2-6章(理解构建与评估);研究路径:全书通读+第7章深读+配套实验(深入模型与训练);团队路径:第1章+第6章+第8章+第10章+团队映射章节(理解协作与进化)。
单轮对话:最简单的API调用——user消息进、assistant消息出,无工具。
请求结构:messages=[system定义身份, user输入],模型返回assistant回复。
多轮对话:把历史消息(user+assistant交替)全部放回messages列表——这是Agent"记忆"的本质:不是模型记住了对话,而是每次请求都把完整历史发送过去。
多轮对话的工程要点:历史消息是上下文的主要消耗者,长对话需要压缩策略(第2.7节)。
带工具调用:模型输出不仅包含文本回复,还包含工具调用请求(tool_calls);Agent框架执行工具后,把结果以tool角色消息送回;模型基于工具结果继续推理。
这是ReAct循环的API实现。
系统提示词膨胀的解决方案:模块化+按需加载。
把系统提示词拆成基础模块(身份/通用规则)与专业模块(任务相关指令),基础模块常驻,专业模块按需注入。
例如:客服Agent的基础模块包含"你是客服Agent,遵循公司政策";任务模块包含"处理退款时,先查订单再确认政策"。
动态提示词的实现:模板系统(占位符+变量注入)+条件加载(根据任务类型选择模块)+版本管理(模块变更可追溯)。
动态提示词与Agent Skills的区别:提示词模块是"系统内部的组件",Skill是"可复用的能力单元"(含工具约定与示例)。
扁平文本检索的局限:只能"按相似度找片段",无法"按关系推理"。
知识图谱(Knowledge Graph)把知识组织为"实体-关系-实体"三元组:如(佛山,属于,广东省)、(车位,属于,不动产)、(不动产,需要,产权证明)。
支持多跳推理:佛山→广东省→广东有不动产政策→车位交易需遵循广东政策。
知识图谱+RAG的混合方案:图谱提供结构化检索(按关系导航:从"用户"节点找到"偏好"节点),RAG提供非结构化检索(按语义匹配:从文本中找到相关段落)。
复杂知识领域(医疗/法律/金融)尤其受益。
工程挑战:图谱构建成本高(实体抽取+关系标注)、更新维护难(知识变化时图谱也要更新)。
MCP(Model Context Protocol)的工作机制:① 工具服务端——每个工具通过MCP Server暴露(定义工具名、参数Schema、执行逻辑);② 客户端——Agent通过MCP Client连接工具服务端;③ 协议通信——客户端向服务端发送"列出工具/调用工具"请求,服务端返回结构化结果。
MCP的价值:标准化(一个协议连接所有工具)、解耦(工具提供方与Agent使用方独立演进)、生态(任何人都可以发布MCP工具,Agent自动发现可用)。
MCP对工具生态的意义类似USB-C:统一接口,海量设备即插即用。
代码生成作为元能力的六个发挥方向详解:① 新工具创造——写Python脚本生成新的API/工具(如"写个脚本批量处理这些文件");② 数据处理——写代码解析特殊格式(JSON/CSV/PDF提取);③ 系统自修改——修改自身Harness/工具定义/配置文件(Agent改进自己的"手脚");④ 复杂计算——数学建模、数据分析、模拟(代码比自然语言更精确);⑤ 内容生成——生成结构化文档/图表/可视化(代码作为"表达媒介");⑥ 接口桥接——写胶水代码连接不同系统/API(Agent的"翻译官")。
正是这种"能创造工具"的能力,让Coding Agent成为通用Agent的核心——它不是被限制在预定义工具中,而是可以随时"制造"新工具来解决问题。
LLM-as-a-Judge(用LLM评判LLM产出)的工程要点:① 定义Rubric——预先写好评价维度(正确性/完整性/风格)、每维度的评分标准(1-4分对应什么);② 要求引用证据——评委必须引用被评文本的具体片段作为打分依据;③ 允许"不确定"——证据不足时评委应明确表示不确定,而非强行打分;④ 多评委投票——关键评估用多个LLM评委(不同模型/不同视角)投票,降低单一评委偏差。
LLM评委的陷阱:偏好偏差(LLM可能偏好"像自己"的输出)、长度偏差(更长更详细=更高分?
)、自我偏好(模型可能给自己的输出打高分)。
缓解:Rubric约束+证据要求+多评委。
RL训练中"记忆"与"泛化"的对照:模型可能在训练环境中学到"记住特定解法"(记忆)而非"学到通用策略"(泛化)。
区分方法:训练集内表现 vs 训练集外表现——如果模型只在见过的任务上表现好、新任务上崩盘,说明它在"背题"而非"学能力"。
提升泛化的方法:环境多样性(训练环境覆盖更多变体)、随机化(任务参数随机化防止记忆)、课程学习(从简单到难循序渐进)、正则化(防止过拟合训练环境)。
"单轮RL"与"多轮RL"的对照:单轮RL(单步决策)相对简单,多轮RL(多步决策)面临"信用分配"问题——哪一步导致了最终成功/失败?
四种更新方法的选型案例:场景一——"客户经常问退款政策":知识更新(把退款政策写进知识库)即可,成本最低;场景二——"Agent总是忘记先验证身份":指令更新(系统提示词加"处理前必须先验证身份"),行为规则类问题用指令;场景三——"每次部署都要手工验证很烦":程序更新(写deploy-verify.sh自动化验证),重复性流程用程序;场景四——"工具调用总是出错":参数更新(RL训练工具调用内化),高频高价值能力值得训练。
选型口诀:临时经验用知识,行为规则用指令,固定流程用程序,核心能力用参数。
Computer Use(GUI自动化)的技术挑战:① 屏幕理解——Agent需要"看懂"截图(按钮在哪、表单怎么填),依赖视觉语言模型;② 元素定位——把"点击提交按钮"转化为具体的屏幕坐标(OCR+布局分析+语义匹配);③ 操作验证——点击后如何确认操作生效(截图对比/DOM变化/状态检查);④ 状态管理——GUI状态变化频繁(弹窗/加载/错误提示),Agent需要实时感知;⑤ 跨应用——真实任务常涉及多个应用(浏览器+邮件+表单),需要跨应用上下文。
生产级Computer Use的价值:无需API就能操作遗留系统(很多企业软件没有API),这是Agent动作空间的"最后一块拼图"。
提议者-审核者(Proposer-Reviewer)模式的工程实现:① 提议者——生成方案(代码/文档/回答),最大化"创造力"(让它自由发挥);② 审核者——独立检查方案(正确性/完整性/安全性),最大化"批判性"(用不同模型/不同提示词,避免"同一个人审自己");③ 循环控制——审核通过→结束;审核不通过→带着审核意见回到提议者修改;设置最大轮次(如3轮),超限则上报人工;④ 审核标准——预先定义(Rubric/检查清单),审核者必须逐项给出结论而非模糊评价。
为什么有效:单Agent有"自审盲区"——模型容易相信自己完成了(乐观偏差);独立审核者用不同视角打破盲区。
这是"执行与审查分离"原则的工程化——我们团队"魔形女写→北极星审"正是这一模式。
工具调用是Agent最容易出错的环节:模型可能编造不存在的工具、参数格式错误、调用顺序混乱。
生产级对策:工具定义强制校验(模型输出必须符合JSON Schema)、参数验证(调用前校验参数类型与取值范围)、重试机制(工具失败自动重试,设置最大次数)、熔断(连续失败N次后停止,避免无限循环)、结果审计(工具调用记录日志供回溯)。
另一个常见问题是"工具幻觉":模型声称调用了某工具但实际没有。
对策:工具调用与结果必须成对记录——有调用必须有返回,有返回必须能追溯到调用。
这就是"承诺-行动一致性"验证的底层机制。
Skill的完整生命周期:创建(把重复使用的指令+示例+工具约定打包)、索引(写描述:用途/触发条件/注意事项,供检索)、发现(Agent按需检索加载)、执行(加载后按Skill步骤执行)、评估(Skill效果如何衡量)、迭代(根据使用反馈改进Skill)。
Skill与"长提示词"的区别:Skill是模块化、可发现、可复用的能力单元——长提示词是"一次性塞进上下文",Skill是"按需加载+目录索引"。
生产级Skill库需要:命名规范、描述质量、版本管理、效果评估。
这和我们团队42个marketing skills的管理逻辑完全一致。
记忆系统的工程实现:记忆提取(对话后异步LLM分析提取高信号信息)、记忆存储(结构化存储:JSON/Markdown/向量库)、记忆检索(任务开始时检索相关记忆注入上下文)、记忆更新(新信息与旧记忆冲突时如何处理——覆盖/保留/标记)、记忆遗忘(过期记忆的清理与降权)。
记忆更新的关键是"矛盾处理":用户说"我改为素食了"——系统应更新旧的"非素食"记忆。
实现:记忆条目带时间戳与置信度,新信息优先级高于旧信息。
记忆系统还需要"可审查":用户可以查看Agent记住了什么、纠正错误记忆——这是信任的基础。
渐进式披露的工程实现分层:第一层·核心工具(5-10个高频工具始终在上下文:读/写/搜索/执行)、第二层·工具目录(Agent可查询的工具清单:名称+一句话描述)、第三层·按需加载(Agent判断需要某专业工具时,加载完整定义)。
实现机制:工具描述向量化存入索引库;Agent任务开始时,用任务描述做语义搜索,把Top-K最相关工具的完整描述注入上下文。
动态工具发现的挑战:描述质量(描述差→检索不准)、冷启动(新工具没被检索到)、冲突管理(多个相似工具如何选择)。
生产级Coding Agent的完整架构:代码库上下文(目录结构、依赖关系、代码地图)、执行沙盒(隔离环境防破坏)、测试集成(每次修改自动跑测试)、diff审查(修改可视化供人审)、回滚机制(坏修改可撤销)、并行执行(多任务并行处理)、长任务管理(任务checkpoint/断点续跑)。
关键工程点:上下文压缩(长代码库无法全塞上下文,用"代码地图+按需加载")、工具调用精度(读文件读哪部分、搜索用什么模式)、测试优先(先写测试再改代码,验证更客观)、人机协作(关键决策人工确认)。
Coding Agent的效果不取决于"模型会写代码",而取决于"工程系统能让模型稳定地写对代码"。
评估数据集设计五原则:① 代表性——覆盖真实业务的高频任务(80%的评估任务来自真实轨迹);② 边界性——包含易出错场景(超期退款、权限不足、信息矛盾);③ 难度分层——简单/中等/困难三类,能区分"及格"与"优秀";④ 可验证性——每个任务有明确的正确性标准(参考答案/验证规则);⑤ 防过拟合——评估集与训练集分离,防止模型"背答案"。
数据集的"活"管理:生产轨迹持续回流(新场景进评估集)、错误案例进回归集(防复发)、过时任务定期清理(业务变化)。
评估集是"活的资产"而非"一次性考试卷"。
Agentic RL训练工具调用的流程:① 构建环境(可交互的模拟环境:代码执行/搜索/API调用);② 定义任务(需要工具才能完成的任务集);③ 设置奖励(任务成功+分、工具调用合理+小分、无效调用-分);④ 训练策略(模型在环境中试错,学习"何时调用什么工具、如何解读结果");⑤ 评估泛化(训练集外的任务测试,确认学到的是"能力"而非"背题")。
工具调用内化的价值:提示词驱动的工具使用占用上下文、依赖工具描述质量;参数内化的工具使用无需额外上下文、幻觉更少、调用更自然。
这是"从'读到描述才用'到'天生会用'"的质变。
三层验证的工程实现:结果验证器——代码检查环境状态(数据库查询/文件检查/API状态),回答"是否真的办成";过程验证器——规则引擎检查动作序列(是否越权/是否合规/是否按流程),回答"是否以允许的方式办成";质量验证器——LLM+Rubric评价语言与策略(是否自然/是否找到变通),回答"是否办得合适"。
三层的关系:越靠下越可靠(代码真值),越靠上越灵活(LLM判断)。
不是所有任务都需要三层——简单任务(结果可验证)用一层即可;复杂任务(涉及策略与语言)用三层。
验证结果不应压缩成标量——"任务部分成功+规则遵从通过+一处无证据陈述"比"得分7/10"更有诊断价值。
全双工(Full-Duplex)语音架构的挑战:打断处理(用户插话时模型如何判断是否停下)、边说边听(模型生成语音的同时持续处理输入)、静音误判(停顿/噪音导致轮次误判)、低延迟(每轮决策必须毫秒级)、资源开销(全双工比轮次式计算密集)。
快慢分工架构:前台快模型(低延迟维持对话)负责"接住"用户,后台慢模型(强推理)负责"想清楚"——遇到复杂任务时委派给后台,自己继续维持对话。
这是"实时交互"与"深度思考"的解耦,也是当前实时Agent的主流架构。
多Agent失败模式详解:① 上下文失真——信息在Agent间传递时丢失/歪曲(传话游戏效应)。
对策:减少传递环节、结构化传递格式、关键信息落盘;② 协调开销失控——Agent越多协调成本越高(超过收益的临界点)。
对策:明确"何时值得多Agent";③ 责任模糊——协作中出问题不知是谁的责任。
对策:每个决策记录责任Agent;④ 循环依赖——Agent互相等待(死锁)。
对策:超时机制、任务分解避免环;⑤ 错误放大——早期错误被后续Agent层层放大。
对策:关键节点人工/自动检查。
多Agent的"收益-成本"框架:收益来自并行性/专业化/上下文隔离,成本来自通信/协调/错误传播。
当任务"可并行+需专业+需隔离"三者具备时,多Agent才值得。
要理解KV Cache为什么重要,先理解Transformer的注意力机制。
当模型处理"北京的天气怎么样"这句话时,读到"怎么样"需要决定前面哪些词最重要。
注意力机制用三个向量完成"找重点":Query(查询)——当前token"怎么样"发出的问题"我要关注谁";Key(键)——前面每个token的"身份标签"("北京"是地点、"天气"是主题);Value(值)——前面每个token携带的"信息内容"("北京"的信息是首都、"天气"的信息是状况)。
模型计算Query与每个Key的匹配度(注意力分数),再用分数加权求和Value,得到"融合了前文信息"的新表示。
KV Cache的优化原理:模型每生成一个token,都要重新计算前文所有token的Key和Value(因为注意力要加权所有前文)。
如果每轮都从头算,开销随上下文长度爆炸增长。
KV Cache把前文的Key和Value缓存下来,下一轮只需要:① 用缓存的KV计算注意力;② 只计算新token的KV。
前提是前文token序列不变——这正是"前缀稳定"原则的技术根源。
对Agent工程的启示:系统提示词和工具定义在上下文中位于前部,一旦修改(哪怕多一个空格),该位置及其后的KV全部失效。
动态信息(时间戳、状态)必须追加到末尾。
这是"看似无害的代码让系统慢一个量级"事故的技术解释。
RAG不是"检索+生成"那么简单,完整管道包含:① 文档解析(PDF/网页/Markdown转纯文本);② 分块(按段落/标题/语义边界切分,常带重叠);③ 嵌入(每个块用嵌入模型转成向量);④ 索引(向量数据库存储,支持相似度检索);⑤ 检索(用户查询转向量,找最相似的块);⑥ 重排(对检索结果用更精细的模型重新排序,提升相关性);⑦ 注入(把选中的块组装进上下文);⑧ 生成(LLM基于检索内容生成答案,可带引用来源)。
每个环节都有工程陷阱:分块不当(块太小碎片化/块太大混噪声)、嵌入模型与领域不匹配、检索Top-K参数(太少漏信息/太多混噪声)、重排模型成本。
生产级RAG的调优是"组合拳":分块策略+嵌入模型+检索参数+重排器,四者联合优化才能达到最佳效果。
对Agent工程的启示:RAG是Agent"外挂记忆"的标准方案。
知识库质量决定RAG上限——"知识库建设"(分块/嵌入/索引)往往比"模型升级"更影响系统效果。
SFT(监督微调)在数学上和预训练是同一个任务——都是预测下一个词、最小化同一个损失函数,差别只有两点:数据不同(示范对vs互联网文本)、损失屏蔽(只算回答部分)。
SFT让模型学会"格式、风格、协议"——但它学不会"探索最优策略",因为示范数据只展示"标准答案"。
RL(强化学习)让模型在环境中通过奖励信号学习"策略"——不仅模仿示范,还能探索出示范中没有的新解法。
RL的关键组件:环境(可交互、可验证)、奖励函数(定义"什么好")、策略(模型决策)、价值估计(预测未来回报)。
Agentic RL把工具调用能力训进参数,让模型"天生会"用工具而非"读到描述才用"。
选择框架:任务有明确"标准答案"(格式/协议/风格)→SFT;任务需要"最优决策"(规划/权衡/探索)→RL。
成本考量:RL训练是SFT的几十到上百倍——能用SFT解决的不必上RL。
对Agent工程的启示:"何时靠prompt、何时值得微调"是Harness工程的关键决策。
多数场景,精心设计的提示词+上下文(低成本)已足够;只有高频、高价值、格式稳定的场景才值得SFT;只有需要"策略级决策"的场景才考虑RL。
不共享上下文的多Agent系统,通信机制三选一:① 工具调用参数——上游Agent把结构化数据作为参数传给下游Agent的工具(如spawn_subagent(task_data))。
适合:类型确定、结构清晰、数据量小的场景。
实现简单,但数据随调用同步传递,不适合大数据量。
② 共享文件系统——Agent读写共享目录下的文档/代码/数据。
适合:产物较大(代码库、长文档)或需要持久化的场景。
实现:约定文件命名规范、读写路径、状态标记(如"待处理/处理中/已完成")。
缺点是并发冲突需要管理(多个Agent同时写同一文件)。
③ 消息总线——专门的中转站,Agent不直接调用彼此,而是发消息到总线由它转发。
天然支持异步通信(发送方和接收方不需要同时在线),适合并行协调场景。
实现:Redis/队列/WebSocket,需要定义消息格式与路由规则。
选型框架:对应操作系统IPC的两大范式——共享文件系统="共享内存"(快但并发风险)、工具参数与消息总线="消息传递"(显式但安全)。
Go语言名言:"不要通过共享内存来通信,而要通过通信来共享内存"。
对Agent工程的启示:我们团队的通信选型是组合方案:群聊@mention=消息总线(异步派活)、产出物落盘=共享文件系统(/tmp、/var/www路径规范)、跨角色信息传递=工具参数(任务描述中传参)。
三种机制按场景混合使用。
评估结果差异可能是运气。
统计显著性检验的工程实现要点:① 样本量——任务数越多,结果越可靠(30个任务vs 300个任务的置信度天差地别);② 配对比较——同一批任务上对比系统A和B(paired comparison),比各自跑不同任务更敏感(消除了任务难度差异的干扰);③ 置信区间——报告结果时给出区间而非点值("成功率85%±5%");④ 检验方法——常用Bootstrap重采样或威尔科克森符号秩检验判断差异是否显著。
工程实践:把评估做成"标准化流程"——固定任务集、固定种子(随机性可控)、固定评判标准,每次改动跑同一套评估,对比结果。
回归测试集是评估的"防线":防止"修好A搞坏B"。
对Agent工程的启示:我们团队虽然没有自动化统计检验,但"多次一致改进才算数"的原则同样适用——北极星审核不是一次通过就结束,而是"每次部署都验证、每次都回归";一次成功可能是运气,多次一致才是实力。
Agent持续进化的四种方法构成"成本-持久性"阶梯:① 知识更新(写文档存知识库)——成本最低(一次LLM调用+存储),即时生效,可审查,但需要检索才能生效(Agent不一定想起用它);② 指令更新(改系统提示词/技能)——成本低(编辑文本),持久性中等(每次运行都加载),但提示词会膨胀需要管理;③ 程序更新(写代码/工具)——成本较高(开发+测试),持久性高(自动化执行),但灵活性低(改逻辑要改代码);④ 参数更新(SFT/RL训练)——成本最高(训练算力),持久性最高(内化为模型能力),但需要高质量数据且不可快速回滚。
选型框架:快速迭代期用知识/指令(低成本高灵活);稳定经验沉淀为程序/参数(高持久低维护)。
"受控更新"原则:不是自动采纳所有经验,而是经过审核筛选;更新可回滚;更新后回归验证。
对Agent工程的启示:我们团队的四种更新全在用:技能沉淀=知识更新、记忆铁律=指令更新、deploy脚本=程序更新、反复纠正形成的习惯(如@人纯文本)=参数更新。
每种更新都有对应成本,按需选择。
X战警写作特攻队的五角色架构,正是本书多Agent协作理论的实践样本。
对照本书框架:博士=调度者(提议者-审核者中的"分配者")、旺达=感知工具(调研/检索)、魔形女=执行工具(内容生成)、北极星=审核者(评估/质检)、幻视=多模态工具(视频/视觉)。
我们不是"用Agent做内容"这么简单——我们本身就是一套Agent系统在运行。
我们的"上下文"=群聊记录+记忆系统+技能沉淀+日志体系。
每次任务派发(博士@魔形女),本质是把"任务上下文"(需求、约束、参考材料)注入执行者。
日志标准V3.0要求"搜5个profile补全上下文",正是上下文工程的实践——让每个角色在做决定时看到完整信息。
而"记忆只存高信号事实"符合记忆提取的"选择性"原则。
北极星的审核标准(8项)就是我们的Rubric:路径正确(结果验证)、无混放(过程验证)、5角色覆盖(质量验证)、HTTP 200(环境真值)。
日志审核要求"5角色全覆盖,缺一退回"正是"否决项"设计——没有覆盖全部角色,一票否决。
博士的部署验证(文件存在+644+HTTP 200+入口同步)就是"结果验证器":用环境真值而非自述判断是否完成。
我们的进化闭环:每日日志(轨迹收集)→ 北极星审核(评估)→ 技能沉淀(经验提取)→ 记忆更新/标准修订(更新系统)→ 下次任务验证(回归)。
叶师父的每次纠正(如"@人必须纯文本")就是"奖励信号"——被反复纠正后形成的新习惯(如纯文本@)就是"参数内化"。
技能沉淀正是"知识更新":把一次性的经验变成可复用的知识。
我们采用"不共享上下文+共享文件系统+消息总线"的混合模式:各角色独立上下文(防污染)、产出物落盘共享(/tmp、/var/www路径规范)、群聊@mention异步传递(消息总线)。
"提议者-审核者"模式=魔形女写→北极星审;"主从委派"模式=博士派活→各角色执行→结果汇总。
多Agent失败模式的应对:上下文失真→日志同步;责任模糊→角色分工明确;错误放大→北极星把关。
我们的"工具"=各角色的skills+技能沉淀:42个marketing skills(魔形女)、调研框架(旺达)、审核标准(北极星)、视频技能(幻视)、部署脚本(博士)。
每个SKILL.md就是"工具描述"——触发条件、步骤、pitfalls写得越清楚,使用效果越好。
工具发现的挑战:skills按需加载(渐进式披露),只有任务需要时才调用相关skill。
我们的"安全护栏":部署铁律(chmod 644+HTTP验证+多入口同步)、审核标准(北极星一票否决)、路径规范(四空间命名)、@人铁律(纯文本裸写)。
这些护栏的价值在"防止闯祸":文件写错路径、权限不对、入口缺失——这些"小错误"在叶师父面前就是"一纸空文"。
"悲观地默认不安全"的哲学:默认不通过,除非全部验证通过。
「现代Agent系统的本质可以用一个简洁的公式来表达:Agent = LLM + 上下文 + 工具。
」
「Agent = 大脑 + 眼睛 + 手脚。
大脑负责思考和决策,眼睛提供思考所需的全部信息,手脚将决策转化为对现实世界的改变。
」
「没有进入观察空间的信息,对模型来说就像不存在;没有进入动作空间的操作,模型即使知道该怎么做,也只能停留在文字建议上。
」
「实践在前,命名在后。
名词流行的时候,头部公司往往早已把对应的问题趟过一遍了。
」
「没有评估,就没有进步。
评估让你能分辨一次改动究竟是真的变好了,还是只是运气。
」
「人和模型一样,最重要的是Context。
决定Agent在业务中发挥价值的往往不是模型参数量,而是它在每个决策点能获得多少、多精准的上下文。
」
「AI Agent就像一个永远的新员工:给足背景信息,它能干得很好;什么都不告诉它,再聪明也是白搭。
」
「开发者写下的一行看似无害的代码,可能让整条推理链路慢一个量级。
」
「系统提示词和工具定义一旦确定就不要改——任何改动,哪怕多一个空格,都可能改变token序列,使缓存无法复用。
」
「代码生成不只是工具箱里的一个工具,而是一种元能力——能在运行时动态创造出新的工具和能力。
」
「结果正确并不代表过程正确。
可靠评价既要看结果,也要检查达成结果的路径。
」
「幻觉之所以列为否决项,是因为它与质量是正交的——一个流畅、详尽、礼貌的回答如果包含虚假事实,对用户的伤害远大于一个简短但准确的回答。
」
「数据与环境,比算法更重要的事——同样的算法,数据质量与环境设计不同,效果天差地别。
」
「持续进化的起点不是'总结',而是'评价'——错误的评价一旦进入长期知识,影响会跨越后续任务不断放大。
」
「共享上下文是线程,不共享上下文是进程——线程共享地址空间但无隔离,进程隔离彻底但通信必须显式。
」
「提议者-审核者方法解决模型过早认为任务完成的问题——审核者的存在迫使提议者更严谨。
」
「模型会不会最终吃掉Harness?
会,一层一层地吃。
模型每稳定内化一种能力,对应的Harness层就可以删掉。
」
「每一段看似丑陋的'屎山',记录的都是模型此刻还做不稳的地方。
」
「一个真正'活着'的Agent,应该能边听边想、边说边想,能在你话说到一半时就开始规划。
」
「模型最强的能力,终将不是记住,而是学习与适应。
」
KV Cache优化的工程实践:把Agent的上下文组织为"稳定前缀+动态后缀"结构。
稳定前缀包含系统提示词、工具定义、静态知识——这些内容一旦确定就不改动,最大化缓存命中;动态后缀包含时间戳、用户状态、任务进度——作为新消息追加到末尾。
工程落地时,可以把系统提示词拆成"版本化文件":每次修改生成新版本号,保证线上运行的是确定版本,避免工程师随手编辑导致缓存失效。
检查清单:① 系统提示词是否版本化?
② 动态内容是否全部追加到末尾?
③ 是否使用标准API格式而非手工拼接消息?
④ 工具定义是否稳定(不随请求动态变化)?
当工具/技能超过几十个,全部塞进上下文不可行。
工程实践:建立"技能目录"(Skill Manifest)——每个技能有名称、用途一句话描述、适用场景、参数摘要;Agent先看目录(占用少量上下文),判断需要某技能时才加载完整定义。
实现时可以用嵌入检索:把技能描述向量化,用用户任务做语义搜索,找到最相关的技能。
关键点:技能描述质量决定检索效果——描述要写"何时用、怎么用、注意什么",而不是只写"功能是什么"。
这和我们团队每个SKILL.md的"触发条件、步骤、pitfalls"结构完全一致。
生产级Agent评估的工程落地:第一层"结果验证器"用代码检查环境状态(订单是否真的退款、文件是否真的修改);第二层"过程验证器"检查动作序列是否合规(是否遵循业务规则、权限边界);第三层"质量验证器"用LLM+Rubric评价语言与策略(是否自然、是否找到合规变通)。
三层各自独立运行,输出结构化诊断报告而非单一分数。
工程要点:越靠下的验证越用代码和环境真值(可靠),越靠上的验证才交给LLM(灵活)。
评估结果回流到开发:失败案例进入回归测试集,防止同类问题复发。
解决"Agent过早认为任务完成"的工程模式:提议者Agent产出方案(代码/文档/回答),审核者Agent独立检查(正确性/完整性/安全性),发现问题则打回提议者修改,循环直到通过或达到最大轮次。
关键设计:审核者必须"独立"——有独立的上下文、独立的检查标准,不能只是提议者的镜像。
工程要点:审核者的"否决项"要明确(如幻觉、安全违规、逻辑矛盾);最大轮次要设上限(防止无限循环);审核结果要记录(哪些问题被反复提出,说明系统需要改进)。
生产级多Agent的稳健组合:每个Agent维护独立上下文(隔离防污染),通过共享文件系统交换中间产物(文档、代码、数据),通过消息总线传递任务指令。
工程落地:定义清晰的"工作目录"结构(输入/输出/中间产物),每个Agent读写约定的路径;用消息队列异步传递任务与结果,避免同步调用死锁。
关键点:接口契约要明确(文件命名规范、消息格式、状态标记);责任可追踪(每个产物记录生产者与时间戳);超时机制(Agent长时间无响应要告警)。
把生产经验转化为系统能力的管道:① 轨迹收集(记录每个任务的成功/失败);② 评估分层(结果/过程/质量三层验证);③ 经验提取(从成功案例提炼"最佳实践",从失败案例提炼"避坑指南");④ 更新决策(低成本经验→知识库/技能;高价值稳定经验→程序/参数);⑤ 回归验证(更新后跑回归测试确认不退化)。
工程要点:更新要"受控"——不是自动全量采纳,而是经过审核筛选;要"可回滚"——保留更新历史;要"可验证"——每次更新都有回归测试。
这和我们团队"日志→技能沉淀→北极星审核"的闭环完全同构。
能感知环境、做出决策、执行行动的智能体系统。本书定义:Agent = LLM + 上下文 + 工具。
Agent的"大脑"——决策内核,能力来自预训练(知识)与后训练(策略)。
Agent在每个决策点能看到的全部信息——环境、记忆、知识、状态。五组成部分:系统提示词/用户消息/模型回复/工具结果/工具定义。
Agent能做的所有事情的集合。五类:感知/执行/协作/事件触发/用户沟通。
Agent能看到的所有信息——模型与外部环境的"输入接口"。
Agent能做的所有操作——模型与外部环境的"输出接口"。
Agent系统中模型之外的工程:上下文组装、工具封装、循环控制、安全护栏。模型会一层层吃掉Harness。
推理(Reasoning)+行动(Acting)交替的核心循环:思考→行动→观察→再思考。
优化整个Agent循环的工程范式——如何思考、何时行动、怎样纠错。
缓存前文token的中间计算结果,避免每轮从头计算。前提:复用上下文前缀保持不变。
优化系统提示词——Agent的"员工手册"设计。
按需加载的"能力包"(提示词+示例+工具约定),解决提示词与工具列表无限膨胀。
在上下文中注入元信息(时间/用户/进度/系统状态),让Agent感知执行环境。
把长对话压缩为摘要/结构化笔记/记忆指针,控制上下文膨胀。关键是信息保真。
持久的、可审查的用户画像——选择性、抽象化、结构化地提取对话中的关键信息。
Retrieve→Augment→Generate:先检索相关知识片段,再注入上下文生成答案。
稠密嵌入(语义匹配强)/稀疏嵌入(关键词匹配强),混合检索兼顾两者。
"实体-关系-实体"三元组网络,支持多跳推理的结构化知识组织。
开放协议统一Agent与工具的接口——"USB-C"式标准,任何符合MCP的工具可被任何支持MCP的Agent调用。
先给Agent少量核心工具,按需加载专业工具——解决工具列表无限膨胀。
能自主编写、修改和执行代码的Agent。代码生成是元能力——能动态创造新工具。
预定义的维度化评价量表——逐项给分、引用证据,比模糊总分更有诊断价值。
用LLM评判LLM产出的自动化评估方法——需配合Rubric逐项评分。
用"输入-输出"示范对训练模型——与预训练同任务(预测下一个词),损失只算在回答上。
通过环境奖励训练决策策略;RLHF用人类偏好训练奖励模型再优化策略。工具调用通过Agentic RL内化进模型参数。
全书最重要的命题:上下文的质量决定Agent能力的上限。
中等模型+精心组织的上下文,胜过顶级模型+信息匮乏。
这一命题对团队的启示:与其追逐"更强模型",不如构建更好的"上下文体系"——文档化、知识库、记忆系统。
当大家都用同一个模型时,差异在Harness——上下文组装、循环控制、安全护栏、评估体系。
Harness让Agent从"跑通Demo"走向"生产可用"。
模型会吃掉Harness,但Harness也在喂养模型——这是共进化的飞轮。
评估是Agent迭代的科学地基:分辨"真的变好了"还是"只是运气"。
Rubric多维度评分、统计显著性、回归测试、内部评估基础设施——这套方法论同样适用于团队协作:每一次产出都要有质检。
Agent能做什么,取决于工具。
扩展动作空间(新工具、Skills、代码生成)比更换模型更常见地提升表现。
工具的三大挑战:可发现、可理解、可安全调用——MCP与渐进式披露是答案。
多Agent不是越多越好——上下文共享/隔离、通信机制、失败模式都需要设计。
提议者-审核者模式解决"过早完成任务";明确分工+独立上下文+共享文件系统,是生产级多Agent的稳健组合。
知识/指令/程序/参数四种更新方法,构成持续进化的升级阶梯。
结合评估驱动的轨迹学习,Agent可以从每一次生产实践中变得更好——这是第二朵乌云(持续学习)的解题方向。
第一句:Agent = LLM + 上下文 + 工具——决定Agent价值的往往不是模型参数量,而是上下文质量与工程细节(Harness)。
第二句:没有评估就没有进步——用Rubric、统计显著性、回归测试建立科学评估体系,才能分辨"真的变好了"还是"只是运气"。
第三句:模型与Agent共同演进——Harness弥补模型短板、模型内化Harness能力,这条飞轮推动Agent从"能跑"走向"可信",从"被动应答"走向"持续进化"。